Open-questions - Open questions for Bellingcat technical contributors

Overview

Open questions for Bellingcat technical contributors

These are difficult, long-term projects that would contribute to open source investigations at Bellingcat and for other investigators around the world. If you are interested in working on these topics, Bellingcat can help connect you with technical resources.

Pull requests that add additional references, ideas, or explorations to the list below are very welcomed.

Assisted or semi-automated terrain perspective match

From a photograph containing topographic features, can the location and view angle be determined?

  • Topographic features could be traced from the image manually.
  • An approximate geographic bounding box could be required to constrain the search space.
  • Could make use of OSM data - triangulation/other techniques used on source image to describe a cluster of OSM features and their positions (e.g. bridge, building, way) which are then searched for in a given region. Descriptions would need to be semantic (e.g. relative placement of features, shape of roads) as that is more meaningful than assumed position. (For example it could be as simple as searching for 'large apartment block, gas station and river within 50m of each other', or as complex as 'railway line passing through forest with two buildings either side')

Electrical network frequency analysis

Create an open source package for chrono-locating a audio/video source by matching electrical network frequency variations (from low frequency hums in source audio) with recorded variations in a grid frequency database (i.e. https://osf.io/m43tg/). This is theoretically possible (many IEEE articles about it) and reportedly in use by state-level justice entities, but is it practical for the OSINT hobbyist? To our knowledge, no one has publicly developed a public, non-academic proof-of-concept of this.

Interferometric SAR imagery

Synthetic aperture radar imagery (as captured by, e.g., Sentinel-1) has certain advantages over optical imaging for open source investigation. It is unaffected by cloud cover and can even be used to detect radar installations, as has been previously documented. An additional advantage, little explored in the open source investigation community, is that these images are complex, that is, they contain both magnitude and phase information. While difficult to work with for several reasons (not accessible in Google Earth Engine, requires "unwrapping", etc.), it has some useful applications for computing topography or topographic changes. It is often used in academic research to visualize crust deformations following an earthquake or long-term land subsidence in agricultural areas. Could this phase data also be used for open source investigations, for example to see deforestation or bombing impacts?

Resource lists for conventional Sentinel imagery

Curation of resources for convential Sentinel-2 imagery would be useful to open source investigators. There are many resources out there, but collecting them in one place would be useful. This could include Sentinel Hub scripts for visualizing certain types of Sentinel-2 products, such as water or fire detection. Bellingcat technical contributors have started collecting some references in the conventional-sentinel-resources/ folder.

Comments
  • Update references.md

    Update references.md

    I have been reading about landslide detection, some of the tools and techniques seems like they would be a useful addition. This is for selecting useful and unobstructed images, the parts about calculating slope and elevation may not be applicable but could be removed, or modified for more useful annotation.

    opened by Metagabbro 0
  • Question: Is there value in a tool that makes maps from raw uploaded photos as a prelude to curation?

    Question: Is there value in a tool that makes maps from raw uploaded photos as a prelude to curation?

    Dear Bellingcat,

    I've got an open source github project that I froze yesterday because of Bellingcat's announcement of their time-and-space map. However, that map is highly curated. My question is constructing such a map from a strait upload of photos valuable? Obviously, this would be input to curation and corroboration, not a replacement for it. I'm willing to work it, but despite asking everywhere I can I've gotten no feedback (either positive or negative) from journalists or OSINT analysts. Obviously, they are busy. I'm a serious programmer and founder of Public Invention, but have no experience or connections in the OSINT community. My email is [email protected].

    opened by RobertLRead 0
  • Estimate of the energy released by a bomb explosion

    Estimate of the energy released by a bomb explosion

    A lot of witness provide videos of large explosions.

    There is a well-known physic analysis to estimate the power of the explosion, that was unveiled by the British physicist G. I. Taylor from declassified images of the Trinity test in New Mexico in 1945. It is based on Buckingham π theorem.

    Look at this doc for explanation.

    To perform this computation, we need timed frames and the fov of the camera to estimate the scale of the fire ball.

    opened by FabriceSalvaire 0
  • Add collection of terrain perspective matching examples

    Add collection of terrain perspective matching examples

    In order to constrain the problem space somewhat, and provide a scaffolding for contributors to get started with, it would be helpful to have a sample dataset collection of image:lat/lon/angle pairs for experimenting with. This could initially be small, perhaps a dozen images.

    To generate a larger dataset in the future, perhaps online images with known geocodes could be used?

    documentation enhancement good first issue 
    opened by loganwilliams 3
  • Workflow Engine to Democratise Capabilities

    Workflow Engine to Democratise Capabilities

    Summary

    Long read below so:

    1. The workflow engine described exists, is open source and ready now
    2. Hosting the control plane can be done from a single node kubernetes cluster (k3d, kind or minikube is fine) or use a commercial control plane hosting provider
    3. All that's required here is to start modelling workflows

    image

    Background

    Ability to provide access to toolings and workflows to as many people as possible. These tools and capabilities must be "consumable" as easily as possible to ensure widespread use and adoption.

    Problem Statements

    1. Installing and using tools often requires advanced technical knowledge and thus is not suitable for widespread adoption
    2. Tooling and "providers" (the how) can change often whereas the processes (or aims) rarely change.

    Example of 1: Ability to use the instagram-location-search capability first requires that you know what Python is. Second, that you can install it, third that you are savvy enough to open dev tools and find your session ID. All of this adds an unneccessarily high barrier to entry.

    Example of 2: Perform a phone number lookup (the aim or "what") will remain fairly static over time (the tooling or "how") is subject to potentially frequent change. If, tomorrow, I want to lookup a number not from instagram but from another provider, I need to write an entirely new program.

    Solution

    1. Provision a workflow engine in front of these capabilities with an easy to understand, standardised and open source eventing mechanism.
    2. Provide the concept of sequences which can consist of one or more tasks. Optionally provide the ability to link sequences together in larger workflows.
    3. Provide a standardised "control plane" that a user (or app) can interact with to trigger sequences and workflows.
    4. Provide flexibility in where and how the "tooling" runs (alongside the control plane or remotely, in containers or "standard" processes).
    5. Ablility to write tooling in any language - the consumer shouldn't know or care about implementation
    6. Provide flexibility to adjust tooling without altering overall capability (eg. swap Instagram for Tool X without impacting a user)

    Simple Sequence (Single Task)

    Using the above example of a phone number lookup, we could model it like this (stages modelling the available environments - in this case, the development environment):

    spec:
      stages:
        - name: dev
          sequences:
            - name: sequence-one
              tasks:
              - name: checknumber
    

    If someone wants to check a phone number:

    1. They HTTP POST a dev.sequence-one.triggered event
    2. The workflow engine knows that it must now trigger a task called checknumber so the workflow engine triggers a checknumber.triggered event
    3. The "Phone number checker" service listens for checknumber.triggered events and knows that it must start working
    4. The "Phone number checker" service informs the engine that it has started by sending a checknumber.started event
    5. Optionally during execution, the "phone number checker" can send updates with the checknumber.status.changed event
    6. The "Phone number checker" has interacted with the Instagram APIs and done it's work. It sends a checknumber.finished event along with any result back as an event.
    7. The workflow engine knows that the checknumber task is done and that it is the only task in the sequence, therefore the sequence is done.
    8. The final result is returned to the user (or web app)

    image

    image

    Complex Sequence (Multiple Tasks)

    Take a more complex sequence which consists of multiple tasks. This one may model a process to judge a photo's authenticity:

    spec:
      stages:
        - name: dev
          sequences:
            - name: sequence-two
              tasks:
              - name: extract-metadata
              - name: geolookup
              - name: author-search
              - name: evaluate
    

    image

    In this sequence, the engine won't start the geolookup task before it receives a .finished event from the extract-metadata task. The final task assumes that we have some metrics (perhaps from the previous steps) which we can use to judge the authenticity of an image. The evaluate task takes, as input, a set of metrics, their corresponding thresholds and ultimately produces a decision pass, warning or fail and a score which indicates the authenticity.

    This evaluate logic is already available out-of-the-box with the engine so no additional implementation is required here. Just tell the engine:

    1. What are the metrics?
    2. Where are the metrics to be retrieved from?
    3. What are the thresholds?

    The engine will do the evaluation and produce the report.

    As I say, the engine and all eventing logic is ready. Reach out if you want to trial some sequence and task definitions.

    opened by agardnerIT 1
Owner
Bellingcat
The Bellingcat Tech team develops tools for open source investigations and explores tech-focused research techniques.
Bellingcat
The open-source tool for building high-quality datasets and computer vision models

The open-source tool for building high-quality datasets and computer vision models. Website • Docs • Try it Now • Tutorials • Examples • Blog • Commun

Voxel51 2.4k Jan 7, 2023
An open-source plotting library for statistical data.

Lets-Plot Lets-Plot is an open-source plotting library for statistical data. It is implemented using the Kotlin programming language. The design of Le

JetBrains 509 Feb 17, 2021
The open-source tool for building high-quality datasets and computer vision models

The open-source tool for building high-quality datasets and computer vision models. Website • Docs • Try it Now • Tutorials • Examples • Blog • Commun

Voxel51 209 Feb 17, 2021
Rubrix is a free and open-source tool for exploring and iterating on data for artificial intelligence projects.

Open-source tool for exploring, labeling, and monitoring data for AI projects

Recognai 1.5k Jan 7, 2023
RockNext is an Open Source extending ERPNext built on top of Frappe bringing enterprise ready utilization.

RockNext is an Open Source extending ERPNext built on top of Frappe bringing enterprise ready utilization.

Matheus Breguêz 13 Oct 12, 2022
Implement the Perspective open source code in preparation for data visualization

Task Overview | Installation Instructions | Link to Module 2 Introduction Experience Technology at JP Morgan Chase Try out what real work is like in t

Abdulazeez Jimoh 1 Jan 23, 2022
Askbot is a Django/Python Q&A forum. **Contributors README**: https://github.com/ASKBOT/askbot-devel#how-to-contribute. Commercial hosting of Askbot and support are available at https://askbot.com

ATTENTION: master branch is experimental, please read below Askbot - a Django Q&A forum platform This is Askbot project - open source Q&A system, like

ASKBOT 1.5k Dec 28, 2022
This repository contains Python Projects for Beginners as well as for Intermediate Developers built by Contributors.

Python Projects {Open Source} Introduction The repository was built with a tree-like structure in mind, it contains collections of Python Projects. Mo

Gaurav Pandey 115 Apr 30, 2022
Technical Analysis Library using Pandas and Numpy

Technical Analysis Library in Python It is a Technical Analysis library useful to do feature engineering from financial time series datasets (Open, Cl

Darío López Padial 3.4k Jan 2, 2023
Github.com/CryptoSignal - #1 Quant Trading & Technical Analysis Bot - 2,100 + stars, 580 + forks

CryptoSignal - #1 Quant Trading & Technical Analysis Bot - 2,100 + stars, 580 + forks https://github.com/CryptoSignal/Crypto-Signal Development state:

Github.com/Signal - 2,100 + stars, 580 + forks 4.2k Jan 1, 2023
Common financial technical indicators implemented in Pandas.

FinTA (Financial Technical Analysis) Common financial technical indicators implemented in Pandas. This is work in progress, bugs are expected and resu

null 1.8k Dec 31, 2022
Technical experimentations to beat the stock market using deep learning :chart_with_upwards_trend:

DeepStock Technical experimentations to beat the stock market using deep learning. Experimentations Deep Learning Stock Prediction with Daily News Hea

Keon 449 Dec 29, 2022
A Python Module That Uses ANN To Predict A Stocks Price And Also Provides Accurate Technical Analysis With Many High Potential Implementations!

Stox A Module to predict the "close price" for the next day and give "technical analysis". It uses a Neural Network and the LSTM algorithm to predict

Stox 31 Dec 16, 2022
Make nixos usable for non-technical users through a settings / package management GUI.

Nix-Gui Make nixos usable for non-technical users through a settings / package management GUI. Motives The declarative nature of ni

null 547 Dec 31, 2022
A Python Module That Uses ANN To Predict A Stocks Price And Also Provides Accurate Technical Analysis With Many High Potential Implementations!

Stox ⚡ A Python Module For The Stock Market ⚡ A Module to predict the "close price" for the next day and give "technical analysis". It uses a Neural N

Dopevog 31 Dec 16, 2022
A Prometheus exporter for monitoring & analyzing Grafana Labs' technical documentation

grafana-docs-exporter A Prometheus exporter for monitoring & analyzing Grafana Labs' technical documentation Here is the public endpoint.

Matt Abrams 5 May 2, 2022
Code for technical report "An Improved Baseline for Sentence-level Relation Extraction".

RE_improved_baseline Code for technical report "An Improved Baseline for Sentence-level Relation Extraction". Requirements torch >= 1.8.1 transformers

Wenxuan Zhou 74 Nov 29, 2022
Tindicators is a Python library to calculate the values of various technical indicators

Tindicators is a Python library to calculate the values of various technical indicators

omar 3 Mar 3, 2022
This is a web application to visualize various famous technical indicators and stocks tickers from user

Visualizing Technical Indicators Using Python and Plotly. Currently facing issues hosting the application on heroku. As soon as I am able to I'll like

null 4 Aug 4, 2022