The goal of Salty Wet Man is to flag inappropriate online content to make the internet a safer and more inclusive space for everyone.
A chessboard features 16 playing pieces with 6 types where each piece has special moves and the end game is to capture the opponent's King resulting in "checkmate". What is the most powerful piece on the chess board? Many people will say the King or Queen because they are the highest rank. However I believe the most powerful are the nine Pawns (lowest rank). This is because through pawn promotion gameplay, the nine Pawns have the power to get promoted to become Queens, Rooks, Bishops, or Knights. Therefore we need to nurture and protect them throught gameplay as they are the seeds for the future.
Being online can astronomically magnify threats and risks that vulnerable children already face offline.
Children are increasingly exposed to digital media and online technology at an early age. They are going online to do schoolwork, play games, and socialize with over 4 billion people (1 in 3 children) connected to the internet. Around 60% of fourth to eighth graders have access to phones or tablets and almost half of them have access to a computer in their bedrooms.
Access to the internet can lead to risks of exposure to online predators posed by online sexual abuse and exploitation, cyberbullying, exposure to harmful inappropriate content, and use and sharing of personal data. The COVID19 global pandemic with it's lockdown measures has led to widespread school closures and physical distancing measures increasing our dependence on technology to connect. Law enforcement authorities and reporting agencies have seen a statistically signficant increase in the amount of child sexual abuse material being shared online, of which an ever increasing percentage involves self-generated content.
Innovation at UNICEF is about doing new things to solve problems and improve the lives of children around the world. Technological solutions like Online Protection Tools are key to efficiently respond the digital risks for children. Four categories of digital risks defined by UNICEF: Content, Contact, Conduct and Contract Risks: https://www.unicef.org/innovation/apply-ChildOnlineSafety. Focusing on Content Risks, which is defined as exposure to harmful or age-inappropriate content, such as pornography, child sexual abuse material, hate speech and extremism, discriminatory or hateful content, disinformation, online games, gambling, content that endorses risky or unhealthy behaviours and violent content which may be upsetting or show criminal activity.
Salty-Wet-Man identifies images solving a binary classification success/failure problem:
[SFW] positively trained for neutral images that are safe for work
[NSFW] negatively trained for inappropriate images that are not safe for work
Image Datasets
NSFW Images
GPU Implementation
Deep Learning's Impact on Computer Vision
Labeled Image-Training Datasets
ImageNet used for Large Scale Object Recognition
Image Location with Large Areas of Skin-colored Regions
Skin region properties - image, color, and texture
Input RGB values (skin spatial pixels) with log-opponent representation
Intensity of image (texture) smooth-ed with median filter, then subtracted from original image
Query By Image Content (QBIC)
Elongated Regions Grouping
Classify Regions into Human Limbs
Object Image Segmentation
Input image each pixel with a category label
If atleast 30% of the image area skin, the image will be identified as passing the skin filter
Training data for this super expensive - need to find images with every pixel labeled
How would salty-wet-man choose the image crops?
Brute force image cropping - sliding window approach (Bad)
Region proposals
Region detection without proposals
Architecture
Disadvantages
Keras Implementation
keras.applications.vgg16.VGG16(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
Data Augmentation
Label peserving transfomations
RGB channel intensities
Dropout Rates
Requires heavy computation
Install Python dependencies and packages (Keras, TensorFlow, and TensorFlow.js) - best to run from virtualenv
Download and convert the VGG16 model to TensorFlow.js format
Launch Node.js script to load converted model and compute maximally-activating input images for convnet's filters using gradient ascent in the input space. Save image files under dist/filters
directory
Launch Node.js script to calculate internal convolutional layers' activations and gradient-based Class Activation Map (CAM). Save image files under dist/activation
directory
Compile. Launch web view at https://lucylow.github.io/salty-wet-man/
yarn visualize
Increase the number of filters to visualize per convolutional layer from default 8 to larger value (ex. 18):
yarn visualize --gpu --filters 18
Default image used for internal-activation and CAM visualization is "nsfw.jpg". Switch to another image by using the "--image waifu-pic.jpeg" 👀
yarn visualize --image waifu-pic.jpeg
HTML5 Local Storage Data
User.js File