TensorFlow Object Detection API, ML Engine, and Swift

TensorFlow Item Search API, ML Engine, and Swift


Note: As of this writing there is no official TensorFlow library for Swift, I used Swift to build client applications for predictive requests against my model. That may change in the future, but Taylor has the final say.


The TensorFlow Object Detection APO demo helps you identify the location of objects in the image which can lead to some super cool applications. But because I spend more time taking photos of people, rather than things, I want to see if the same technique can be applied to identify faces. Turns out it worked well! I used it to build the Taylor Swift detector in the picture above.





In this post I will outline the steps to take the T-Swift images from the iOS app which predicts against the trained model:

Pre flow streams: Resize, label, split them into training and test sets, and convert to Pascal VOC format

Convert images to TFRecords to be fed into the Item Search API

Train the model on the Cloud ML engine using MobileNet

Export the trained model and apply it to the ML engine for service

Build an iOS frontend that makes predictive requests against trained models (in Swift, explicitly)

And if you skip the code, you can find it on GitHub.

Looking at it now, it all seems so easy

Before I dive into the steps, it helps to explain some of the techniques and terms we are using: TensorFlow is a framework built on top of TensorFlow to identify objects in API images. For example, you can train it with multiple photos of cats and once you get this training you can pass it on to the image of the cat and it will return a list of rectangles where it thinks the cat is in the image. And when it has an API in its name you can think of it as a set of useful utilities for transfer learning.

But it takes data and tons to train the model to identify objects in the image. The best aspect of object detection is that it supports five pre-trained models for transfer learning. There is a similarity here to help understand how transfer learning works: when a child is learning their first language they are very exemplary and improve if they identify something wrong. For example, the first time they learn to recognize a cat their parents show the cat and say the word "cat" and this repetition strengthens the pathways in their minds. When they learn how to recognize a dog, the child does not have to start from scratch. They can use the same identification process as they did for the plant, but apply it to a slightly different function. Similarly, learning to transfer also works.




I don't have time to find and label thousands of TSwift images but I can use the features brought from the models that trained millions of images by modifying the last million layers and applying them to my specific classification work (identifying TSwift).

Step 1: Moving images forward


Many thanks to Dot Tran for writing this excellent post to train a raccoon detector with TIT object detection. I followed the blog post to label the images and convert them to the correct format for TensorFlow. Her post has details; I will summarize my steps here.

My first step was downloading 200 images of Taylor Swift from Google Images. There's a Chrome extension out there - it downloads all the results from Google Image Search. Before labeling my images I divide them into two datasets: train and test. I reserved a test set to check the accuracy of my model which was not seen during this training. As per the recommendations per data, I wrote the resize script to make sure no sizes are larger than p00px.

Because the object detection API tells us where our object is in the image, you can't just pass it on to images and labels as training data. You need to cross the bounding box to identify the item that is in your image and the label associated with that bounding box (we will only have one label in our dataset, swift).

I used LabelImg to generate bounding boxes for our image, as recommended in the Data Raccoon Detector blog post. labeling is a Python program that lets you handle label images and returns an XML file for each image with a bounding box and related label (I spent the whole morning labeling swift images when people put related things on my desk). Here's how it works - I define the bounding box in the image and label it:




Now I have the image, the bound box, and the label but I need to convert it to a format that TensorFlow accepts - the binary representation of this data is called TFRecord. I wrote this script to be based on the guidelines provided in the object script repo. To use My Script, you need to clone TensorFlow / Model Repo locally and package the object detection API.

# From tensorflow / model / research /
Python setup.py sdist
(CD Slim and End Python setup. Pp sdist)

You are now ready to run the TFRecord script. Run the following command from the TensorFlow / Model / Research directory, and cross it with the following flags (run it twice: once for training data, once for test data):

Python convert_label_t_frackards.p
--output_path = train.record
--images_dir = Route / From / Your / Training / Image /
--labels_dir = Path / From / Training / Labels / xML /

Step 2: TSwift Detector Training on Cloud Machine Learning Engine


I can train this model on my laptop but it will take time, a lot of resources, and if I had to put my computer away and the training would stop abruptly. That's what the cloud is for! We can take advantage of running on multiple cores of the cloud to get the whole job done in a few hours. And when I use the Cloud ML engine I can also run training quickly using GPUs (Graphical Processing Units), which are special silicon chips that are excellent in the type of computing that our models perform. Using this processing power, I can stop a training job, and then TSwift will go out of the jam for a few hours when my model trains.

Installing the Cloud ML engine


With all my data in TFRecord format, I am ready to upload to the cloud and start training. First I created a project on Google Cloud Console and enabled the Cloud ML engine.


So I create a cloud storage bucket to package all the resources for my model. Be sure to specify the area for the bucket (do not select multi-area):

I create a data/subdirectory inside this bucket to keep training and TFRecord files.
Image for post

The Item Search API also requires a pbtxt file that relies on maps to the label. Because I only have one label, it will be too short:



Adding mobile net checkpoints for transfer education


I am not training this model from scratch so when I run the training I have to show the pre-trained model I am building. I chose to use the MobileNet model - MobileNets is a series of small models optimized for mobile. When I'm not serving my model directly on a mobile device, MobileNet will be trained quickly and will allow for quick prediction requests. I downloaded this mobile net checkpoint for use in my training. A checkpoint is a binary file that contains the state of the tensor flow model at a particular point in the training process. After downloading and unzipping the checkpoint, you will see that it contains three files:


I need to train all those models so I put them in the same data/directory in my cloud storage bucket.


There is a file to add before conducting the training. The object search script needs a way to find our model checkpoints, label maps, and training data. We do this with the config file. TF Item Search Repo has sample config files for each of the five pre-trained model types. I used MobileNet here and updated PATH_TO_BE_CONFIGURED placeholders with related paths in my cloud storage bucket. In addition to adding my model to the data in the cloud storage, this file configures several hyperparameters for the configuration size, activation functions, and steps for my model.


Here are all the files that should be in my / data cloud storage bucket before I start training:


I also create train / and evale / subdirectories in my bucket - this is where TensorFlow writes my model checkpoint files while running training and evaluation tasks.


Now I am ready to run the training, which I can do through the gcloud command-line tool. Note that you must clone TensorFlow / Model / locally and run this training script from that directory.


During the training, I also took a kick out of the assessment work. It evaluates the accuracy of my model using data that has not been seen before:


You can verify that your work is running correctly and inspect the logs for a specific task by navigating to the employment section of the ML Engine on your cloud console:



Step :: Deploying models to present forecasts


To fit the model to the ML engine I need to convert my model checkpoints to protofuf. In my train/bucket, I can see checkpoint files saved from a few points throughout my training process:


The first line of the checkpoint file will show me the latest checkpoint path - I download files locally from that checkpoint. There should be a .index, .meta, and .data file for each checkpoint. With these saved in a local directory, I can use the object_export_infer_graft script to convert these items to protobf. To run the script below, you need to define the local route in your MobileNet config file, the checkpoint number of the model checkpoint you downloaded from the training work, and the name of the directory you want to export the graph to. Written to:


After running this script, you should see the saved model/directory inside the .pb output directory. Upload the saved_model.PB file (don't worry about other generated files) to your cloud storage bucket/data directory.


Now you are ready to deploy the model in ML engine for service. Use gcloud to build your model first.


The gcloud ML-Engine model creates tswift_detector


So save the first version of your model by showing the model prototype you just uploaded to the cloud storage.


gcloud ml-engines version v1 --model = tswift_detector --origin = gs: // $ {YOUR_GCS_BUCKET} / data --runtime-version = 1.4


Once the model is deployed I am ready to use the ML engine's online forecast API to generate forecasts in the new image.


Step:: Building predictive clients with Firebase functions and Swift


I wrote an iOS client to Swift to request predictions on my model (because why write a TSwift detector in another language?). The Swift client uploads the image to the cloud storage, which triggers a firebase function that requests predictions in Node.js and consequently saves the forecast image and data to the cloud storage and restores.


First, in my Swift client, I added a button to access the users' device's photo library. Once a user selects a photo, it triggers the action that uploads the image to cloud storage:


Next, I triggered the Firebase function while uploading to the cloud storage bucket for my project. It takes the image, base 64 signals it, and sends it to the ML engine for prediction. You can find the full function code here. Below I have included excerpts from the function where I request the ML Engine Prediction API (thanks to Brett McGowan for helping with its expert cloud functions!):


In the ML Engine answer, we get:


Detection_boxes that we can use to define the bounding box around Taylor if he is found in the image


The Detection_Score returns the trust value for each detection box. Only more than 0% points I include explorations.


Detection_class tells us the label ID associated with our identity. In this case, it will always be 1 because there is only one label


In the function, I use the detection_boxes to draw a box on the image if Taylor is found, including the trust score. So I save the newly boxed image to the cloud storage, and write the image file path to the cloud firestore so I can read the route and download the new image (with a rectangle) to my iOS app:


Finally, in my iOS app, I can listen for updates on the Firestore route for the image. If one is found, I will download the image and display it in my app with an identity trust score. This function replaces the comment in the first Swift snippet above.


Oops! We have a working Taylor Swift detector. Note that the focus here was not on accuracy (I only had 1,140 images on my training set) so the model incorrectly identified some of the images that you might mistake for Swift. But if I have time to label more images I will update the model and publish the app in the app store :)


What now


This post covered a lot of information. Want to build your own? Here is a breakdown of the steps with links to the sources:


Pre-transmitted data: I followed Data's blog post to generate XML files with label images and bounding box data using label IMG. So I wrote this script to convert the written images to TFRecord


Training and an Object Assessment Detection Model: Using the approach from this blog post, I uploaded the training and test data to cloud storage and used the ML engine to run the training and illumination.


Deploying the model to the ML engine: I used the gTLD CLI to deploy my model to the ML engine.

Making Forecast Requests: I used the Firebase SDK for cloud function to request an online prediction to my ML engine model. This request was triggered by an upload of Firebase storage from my Swift application. At my ceremony, I wrote the prediction metadata on the Firestore.

Links


TensorFlow Object Detection on GitHub: https://goo.gl/QYThDb

Building a pet detector with the Object Detection API: https://goo.gl/cxIquA

Building a raccoon detector with the Object Detection API: https://goo.gl/A8Sykp

Pascal VOC format: https://goo.gl/m2yT6N

Firebase iOS SDK: https://goo.gl/hnbrva

Cloud Functions for Firebase: https://goo.gl/1qBuce



Comments

Popular posts from this blog

Artificial intelligence (AI) - the ability of a digital computer.

What is SEO and how to do search engine optimization?

Facebook's name has been changed to 'rebranding'

Labels

and Artificial Intelligence a Social media Facebook What on are you phone This mobile your IT Nepal Android internet Do for can smartphone use with from workforce media app be new social iPhone robot why will data does not Apple Machine Learning Now these Python by that YouTube account company computer feature like or password ChatGPT Whatsapp digital twitter Instagram an China Tiktok has machine without work US free information make online search way Future Know find out people video videos Here If Microsoft One apps battery photos website Avoid Have India Intelligence Laptop ML after corona features market may need phones protect public service smart system user users year Buy Elon Musk Windows billion cyber million money network update which world 10 Things about chrome education history home photo want Bitcoin Content Did Machine Learning Future Nepali Operators SEE Scientists Who Wi-Fi artificial browser code don't down download government hacker hacking many mind safe security take tips when Amazon Artificial Intelligence Future Cryptocurrency GPS Gmail Keep Learning TV as bank being cloud going human its launched life malware netflix software study their there two used version where 14 15 7 Beginners Deep Learning Earth Messages More NASA Privacy Risk Some Than Thinking Top also at available become been business buying camera career change chat companies countries digital marketing easy first hacked hackers jobs look marketing meta millions monetization most number price sent settings store such virus while work force 5 Agriculture Bug Deep Development Everyone Gemini Global Google Maps Here's Kaggle Pro RAM Samsung So Types Ways Windows 11 World Cup Xiaomi accounts address all attack brain chip dangerous difference drive earn email files found get go good hidden image including job language location message mode news old only open passwords pay percent play problems really saying search engine should smartphones storage story them up using watch we web windows 10 working 17 2020 2022 4 6 Based Cambridge Dark Web Deepfake Electric Elon Even GB GPT Health-care Help Lite Maps Models Must OpenAI Operating Oppo Pakistan PayPal Print QR Reasons SEO SMS Telegram TensorFlow Tutorial Type Typing Vision WiFi Word Zoom advertising age another any becoming best better biggest blue care charging comments computers could country created cyber attacks days deleted doing due electricity emails employees engine ethics eyes fake football function gadgets game games gets glasses hours humans iPhones increase install launch lost making medical memory misused monitor months moon name once own post posts private problem processing production program quantum quickly robotics robots run safety satellite says scan science screen secret secure send share signal space stay students systems target they thousands time topics tricks useful viral voice war was water wireless workers worldwide years 000 100 11 12 16 200 2024 30 35 5G AI Education Alan Musk America Analytica Applications Army Assistant Banned Because Before Blockchain Bounty CCTV CEO COVID-19 Chat GPT China's Chinese Choose Clean Close Clubhouse Computer Vision Crypto DL DNS Developer Docs EV Economic Explain Factory Finally Google chrome Google drive Healthcare I IBM Identify Includes Japan Keras Kernels Large Lifestyle Looking MDMS Mac Music Musk Natural Ncell Nepal's Nepalis Net Notebooks PC Police Preparing Prime Revolution Russia SIM Save Scikit-Learn Skills SpaceX Starlink Stephen Hawking Sun Tesla Theme Therefore Trump Unnecessary VPN Variables Visas Wait WorldLink ability ads air airplane along alternative among attention authentication autocorrect aware background bandwidth beneficial between blocked break bring browsing bully cable call cameras cannot captions capture cause center charge charger chatbots check children class come coming complete consumption control copyright corona-virus courses create crimes currency cyber security dark dataset datasets day deal delete deleting details developed device different dislike doctor documents domain during dynamic each easier easily employee energy engineer engineering exactly excessive expected extend factor facts family fiber fix forced forever forget fraud friends full gas getting given got growing guest hand handle hear heater his iOS iOS 26 iPhone 14 impact important incognito income industry insecure into invest keyboard known law learn list listen live loss main manager map meaning meanings megapixel messenger mistakes model month movies much nonsense nuclear off opening operated original other our over phishing physics platform porn prevent product programming protection question ready real real-world reduce rejected released remove removes report reward room ruining same saving say scandal searched secretly selfie sex shortage show side since site sold solve someone sound source speaking special speed spyware stuck studying subscription taken talent techology television tick today too torrent traffic trick trillion true turns universe upload uses various verification vulnerabilities warning weakest weapon woman women won't young "Nano Banana" $100 & 'Buy the Dip' 'HDR' 'Hey Google' 'Hey Siri' 'I' 'Mr. Beast' 'Professional Mode' 'Trash' folder 'football intelligence' 'hidden' 'refill station' (IoT) (LLM) (NLP) 1 10:10 10th 145 18 19 2 20 2007 2026 2027 25 300 3D 40 4000 46% 48 4K 5 P's 60 600 7 C's 78% 8 8.5 80% 90% @everyone on A17 AI Tool AI ethics AI-Based AI-powered API AR Adjust Adobe Adopt Adsense Adsense Supports Africa Alexa Algorithms Ali Baba Altman Amazon Jungle Amazon Prime Ambani American Anaconda Android 11 Android TV Android phone Android's Annoyed Anthropology Apple's Apply Appoints Arithmetic Art Art through NFTs Artficial Intelligence Artificial neural Artuficial Intellegence Ashika Tamang Assignment Astronauts Astronomy Atrificial Inteligence Attacks Audiobooks Augmented Reality Australia Australian Auto-GPT AutoML Avatar 2 Bachelors Banning Bard AI BeiDou Bernie Sanders Beyond Big data BigQuery Bill Gates Bitwise Blind Blockchain Developer Blockchain Technology Books Brave Brave Browser Brazil Browser's Bumble C charger CPU CPU temperature CTEVT CV Cases Casting Changed ChatGBT Chery Citroën C5 Cloud Factory Cloud Factory Nepal Club House Colab Command Comparison Compute Concatenate Concerns Contactless Contactless payment system Copa America Copilot Couple Challenge Crash test Create your first Project on Python Crossover Cup Cybersecurity DRS Gaming Dark mode Datalab Dating Deep Fake Deep Learinig Deep Learning with Python Deep Neural Networks Defender Demat Department Dept Development in predictive analytics Didn't Digital avatars Disable Discontinuing Discovers Do not Dodge Dogecoin Drones DuckDuckGo E-task EA ETF EU EVs Earbuds Earth 2 Earthquake Edge Computing El Salvador Elected Electric Vehicles Electrical Eliminate Embassy Embedded Application Embedded Application (EA) Emoji Epstein Epstein’s Estimators Ethical Hacking Euro NCAP European Evolve Explained Explosion Express WiFi FPS Facebook Messenger Facebook's Facets Fears Federal Reserve System Finance Finding Firefox Fitbit FiveG Fixed wireless Follow Forge Fraud Call Freefire Freelancing GIF GPU Gadget Galaxy Gboard Germany Git Giving Glass Gold Google Chat Google Cloud Google Meet Google Play Music Google Plus Google Plus code Google Workspace Google search Google's Green room Greenroom. Spotify Grok Guest Mode HDMI Habitable Happy Birthday Health sector Heights Holi Honest Honeygain Hosted Hour Huawei Hub Hyundai I'll I'm ID IMD IP IPO ISP Implementing Increasing Index Indonesia Inflation InfoSec Input Inspiration Installation Instead Integrated circuit Intel Intelligent Internet of Things (IoT) Introduction Iran Iranian Iranians communicating Island Isn't JBL JPG JPMorgan Chase & Co Jack Ma James January JavaScript Jeffrey Jio John Joker Virus Journalism Jungle Jupyter Jupyter Notebooks Kathmandu Keys Korean LAN LLM LP Large Language Models Launch of better autonomous systems Lee Kun-hee Library Liking Line Linux Liquid Logical Lucky MDMS Nepal ML Engine MSN MaAfee MacBook Mark Zuckerberg Max Meet Membership Mero Share Metaverse Microsoft Office Microsoft Teams Military Military weapons Minister Missiles Mobile Operating System Module Moltbook Mouse Mukesh Ambani Musk's Musk’s data NASA's NEA NFT NFTs Natural language processing (NLP) Navigation Nepal. radio mapping Nepali businesses Nepali game Nepali youth NetTV Neural Network Neural Networks New Technology No Nokia North Korea Note Nvidia Object Detection Open-source OpenAI's Opera Outlook Outsourcing PDF PNG PPT PUBG Pandas Pandora Parent Paytm Pendrive Photoshoot Pi Network Pip Plan Planets Play Store Pokémon Pokémon Go Precision Premium Preparations Prerequisite Pro's Process Process discovery Pycharm Pyenv Python Programming Python Tutorial Python Tutorials Python for Beginners Python on Windows Quick Draw RCS Race Radically Raise Ransomware Rashtra Bank Rasuwa Reboot Recommender Recommender Systems Redmi Reinforcement Reinforcement learning Reliable Reliance Reliance Jio Remittances Remotely Remove. bg Replacing Reverse Rice that grows for years once planted Rises Robot Sophia Roles Ronaldo Routine of Nepal Banda S&P 500 S&P Global Ratings SD Scale Scaling Scikit Screen Pinning Selection Sensitivities Sensors September Seven Shorts Singapore Sitting SixG Snapchat Sophia South Korea Space X SpaceX's Spam Stable Coin Steve Jobs Stock market String Success Sundar Pichai Supermarket Supervised Supervised Learning Supervised Machine Learning Supply Chain Attack Supports Swift TIFF Teaching Teenagers Telecom Telecom's Telescope TensorBoard TensorFLow Hub Thes Tiktok stop Time Travel Tool Training Data Transforming Translation Trojan Truecaller Trusting Try Type-C UAE UI US Congress US-China USA USB Understand United States Unspoken Unsupervised Unsupervised Learning Unsupervised LearningUnsupervised Machine Learning Unsupervised Machine Learning Upcoming Upcoming Technology Urges Using a drone VPNs VR Valley Vehicles Virtual reality Virtualenv Visualize WWW Walkthrough Walmart WeChat Webb Wha What are Assignment Operators in Python What are Comparison Operators in Python What are Logical Operators in Python What are Operators in Python What are the basic laws of quantum physics What is What is Chat GPT What is Google Adsense What is Pycharm What is Python What is String in Python What is Variable in Python Whose Wi-Fi 6 Wikipedia WordPress Wrangling data Write X X8 series XAI XOR XSS Yeti YouTuber Ziglar Zipty Zuckerberg accept access accidentally action adding admin administration admins advantage advertisers again against agencies agency agricultural ai beauty aims aircraft aired alert algorithm almost alpha amid analytics ancient and security angles announcement announces annoying answer answering answers antivirus anyone anything appeals appear appearance appliances application approach approaching approaching science meaning apps. google arise around arrive arrived article artificial blood vessels arts associated attach attract attractions audience authentic automatic automatically autonomous avatars baby back backed bad ban bans bar basic batteries beginner benefit benefits beta bicycles bitcoin mine bitcoins black blacklisted blackout block blocking boarding bogged book bought box boycott boyfriend brand brings broadband brought budget bug bounty build but buttons bypass cable internet cables calculus calls campaign can't cancel cancer capacity car cards careeer careful carry case cave challenge channel chat.com chats cheap cheaper checkmarks chess child chips choose. a click clicking climbers clock closest club coding collaboration colleges color combat commercial common communicate compensates compete competing completely computer mouse computer science computing concept condition connect cons consider consumes contains controls controversies conversations cooker credit crime crisis criteria crore crores crowdsourcing culture cure cutting cyberattack cyberspace cycle d about damaged danger data center data science dating apps deadly debit dedicated delete data deny deport depression destination developing devices diary die digit digital banking digital cameras digital land digital privacy disappeared disappearing discovered discovery displaced display displays disrupt disturbing document dog dollars domestic doodle door downloads drains dream drone drug trafficking e features e-Rupee e-SIM e-books e-passport e-sewa eBooks ePassport earn money from Nepal eating economy edit editing effective electronic eligible else email server emerged emergency emojis end enough entering entire espionage etflix except excuse existence expire extracts eye face app facial facial verification failed false far farm fax fdown.net fee feet fight file film final fitness five flood floods flying foldable food fooled footprint foreigners forensics forgotten form formats forwarding foundation free upgrade frequency freshman from search fruit fuel game tips gamer gasoline gateway geometry gestures give gives goes gone good content goodbye goods google docs gossip granted great groups growth guide hack had hall handy happen happy harmful he head headphones headset health higher hike hikes hobby household human brain human intelligence human trafficking hundreds hurting hydrogen hype iCloud iPad iPhone 12 Pro illegal data illicit trade illnesses image processing processor images impair improvements inbox incidents incorporating increased incur induction instant instrument interest interesting interests internal storage internet speed intranet introduced introducing invented invention investigating investment invites issues it's it’s jack join journalists journey kit laboratory lack lakh languages laptops last later latest launches launching lawmakers laws leak leaks legalize let letter letters licenses light likes link links listening lives loaded lobbying locked long longest lose love machine vision made main features maintain major maker makes man manage management system managing mango marketplace martial mask matches matter measures measuring meetings megawatts melting meme mental messaging microphone middle million. downloads mine misleading missing mistake mobile number moble moment monetize monitors monkey mother mountain mounts move movie moving mute my myths name-x names naming near necessary needed negative networks neural neural networking new code new look new windows news anchor next night mode non notes notifications now.gg nuclear energy obligation obscene obtained offenders office official officially offline often older open source opened operate operating system opposed optic optical optical fiber optimization option options others outbreak overheating oversold overtakes overuse owner page paid pandemic paper participant participate passkeys passports password. patent pattern paying payment peace pen drive permanent permission person personal personalized perspective phone confidential picture pictures pirated placed placing planting platforms playing policy political pop-up popular popularity port possible powered powerful practice predictive pregnant prepared pressure prices principles prize processor product key programmatically programming languages project prompt prompts property pros protected provide provided proxies proxy quantum computer quantum internet questions quires quota r daily radio rain rainy season raises rate reach reading real-time realities reason rebranding recognition record recover recovery reform refresh refreshes refrigerator regarding registered registration regulation regulators related relationship relaunched remain removing repairing replace reports requiring reset residence resignation resolution responsibilities restaurants results returned revenue review rings risks risky road robotic dog rocket rooms round ruin rules running runs safely sale scammers scary schedule scheme schools scientific screens search engines seeks selectric cars sell semi-final semiconductor sending series server services set setting shared sharing shield ships shocked shoulders shrink shuffled shut shuts shutting sidebar simple sites sky sleeping slightly slow slowing smartblock smarter smartly social engineering hacking software. tech solutions somewhere soon sources space center space debris spacecraft spaceships specifications spectrum spend spending sponsors sports spying stable star starship start started starting starvation station steps stocks stolen stop stories strategy streaming strong student subject subscribers successful suffers suggested suggestions suitable suitcase supercomputer superintelligence surface surprised survive t are tag tagging talk teach team technlogy technoloy technonlogy telecommunication teleport tensions terminology terms test text think those thousand thread threat to threats through throwaway tightens timer tinder tired toilet took tools topic tossing touch pad tracked tracker tracking trackpad trading transact transactions transport travel trending trends trip turn turned tweets unbuyable unemployed unemployment unfriending unimaginable unique unpleasant unregistered unsafe unseen until unveils upgrades versatility very view viewing virtual virtual currency virtual world vishing visit visiting voter washing waterproof weakening weapons web design websites week well went were wet what's willing withdrawn words works workspace world war world's worrie worried worth writer written wrong yield ‘Cloud AI’ ‘Hall of Fame’ ‘Hosts’ ‘JeffTube’ ‘Personal Intelligence’ ‘Wi-Fi Pineapple’ ‘Zoom Rides’ ‘viral’
Show more