With help of Tensorflow object detection and nudity package, tool detects firearms and nude pictures on Twitter and Instagram. It supports hashtag and location streaming as well as standard user checkup. As the results, folders with ‘artifacts’ is created which contains all detected assets.

Tool & technical info here

Detect firearm and nudity on Twitter and Instagram - woj-ciech/nadesrau


Besides big data analysis it’s hard to find proper place for Artificial Intelligence (AI) in OSINT (Open Source Intelligence) field, however there is one small hole to fill, which is object detection. Technology given to us allows to gather more and more information in any crime field — financial, malware, drugs or firearms trafficking. Intelligence services often uses that to examine specific individuals and gather proofs that might be helpful to convict him or her. That’s where AI can help, you don’t have to go through every photo in the account to know what it contains.

For this project, Tensorflow custom object detection was used with images provided from SoftwareX https://github.com/sofwerx/tensorflow-gun-detection . Model has been trained on Google ML Cloud. I must mention that this model is not perfect, it still gives false positives however if it came across the firearm, it will be detected in most cases. With collected pictures it’s possible to build even a more powerful dataset to train it and get better accuracy at the end.


The problem with nudity is that, it’s everywhere. After couple hours of streaming specific hashtags Nadesrau collected photos that even darknet users would be satisfied with. Very disturbing, definitely not for fragile people. Lot of pornography and nudity, of course it depends of the hashtag but it would be more disturbing to see this kind of material in sensitive or trending hashtags.

Forbidden hashtag

One of the main reasons for creating Nadesrau, was accident when I saw hard pornography content couple days in a row in “tops” on one hashtag. The videos had obfuscation on purpose to cheat and bypass nudity filters. In my opinion, specific hashtags should be constantly under observation to catch inproper uploads.

Additionally, all of the content was posted from real but probably hacked accounts. Video had 1k likes and almost 2k comments. Most of the comments were from accounts promoting theirs scams, with help of fake or hacked accounts.

One of the compromised account that serves porn content

Hot moms in your neighborhood

We all know that Instagram users post their almost-nude photos for some reason. It’s possible to search for nudity based on given geolocation. It looks for Facebook Places nearby and then queries this place. It can be used to find strip club or idiots who share any nude content with location turned on.

Command “python nadesrau.py — instagram — check_location xx.xx,-yy.yy –nudity”, will check for any photos in range and filter it for nudity.

Detecting nudity in specific location

If we are still in fun part, for user checkup, tool will calculate so called ‘whoregrade’. It’s sum of nudity score (0–1) divided by number of photos. On this basis, we can get insight if account contains lot of nudity or it is clean. For example, account @fit_booty_babes has whoregrade: 0.46 based on 17 photos and @franciscus has 0.09 on 13 photos.

python nadesrau.py — instagram — check_user_instagram fit_booty_babes –nudity

Calculated whoregrade

Bots everywhere

Every time when nudity or sex shows up, there are bots and fakes as well. There is a whole network of bots scamming man on Twitter. They promise naked photos in order to get money or trick user to click on link and deliver malware or even control a botnet.

One of the bots from the network was detected by streaming hashtag


Twitter and Instagram are platforms for sharing everything and bad guys take advantage of that, so we can find a lot of illicit stuff there. Illegal gun selling and trafficking do happen on social media. Nadesrau can help with finding accounts which posted pictures of firearms. Of course, you should take a second look on the suspect to exclude false positives or confirm your thoughts.

Needle in a haystack

Streaming allows to collect all tweets and then set up a filter and try to ‘catch’ someone who posts a picture of firearm. As it is with Instagram, some hashtags are more vulnerable and should be under observation, though.

python nadesrau.py — twitter — stream_hashtag #military — firearm

One of the thumbnail of video detected from streaming hashtag

Another idea is to check hashtags related to warfare and collect intel about accounts posting gun pictures. It may be valuable to establish network of people related in any way with guns in war zone.

For investigate journalists to catch videos and pictures to follow additional leads.

Searching for a gun

It’s worth to mention about own yard, Nadesrau supports location streaming, which can be used in similar way as mentioned in paragraph above. In addition, you can find easly gun shops J. If you are interested in looking for a firearms in a relatively small territory, you can add code and set up notification to your phone each time firearm picture will be posted in that range.

This site might be helpful to pick a range of coordinates https://boundingbox.klokantech.com/. Remember to convert it to csv format

python nadesrau.py — twitter — stream_location 7.4 36.12 21.37 47.4 — firearm

Streaming location


Intelligence agency uses better, more powerful and more efficient systems from beginning of social medias. Access to technologies like Tensorflow and Google ML Cloud has given possibility for usual people to gather and analyze more data in more sophisticated way. Any OSINT investigation should include as many sources and possibility to follow the leads as possible. Luckily, with new technologies, we can dive deeper than ever with our researcher.


Originally published on 27th of March, 2019

Firearm and nudity detection on Twitter and Instagram
TL;DR With help of Tensorflow object detection and nudity package, tool detects firearms and nude pictures on Twitter and Instagram. It supports hashtag and location streaming as well as standard…

Please subscribe for early access, new awesome things and more.