All Projects → johanmodin → clifs

johanmodin / clifs

Licence: Apache-2.0 license
Contrastive Language-Image Forensic Search allows free text searching through videos using OpenAI's machine learning model CLIP

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
python
139335 projects - #7 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to clifs

React Native Text Size
Measure text accurately before laying it out and get font information from your App.
Stars: ✭ 238 (-12.18%)
Mutual labels:  text
SilentServer
Silent is very lightweight, high quality - low latency voice chat for gaming. The server runs on Windows and Linux.
Stars: ✭ 52 (-80.81%)
Mutual labels:  text
markdown
markdown tools, libraries & scripts
Stars: ✭ 52 (-80.81%)
Mutual labels:  text
Finalcut
A text-based widget toolkit
Stars: ✭ 244 (-9.96%)
Mutual labels:  text
graphsignal
Graphsignal Python agent
Stars: ✭ 158 (-41.7%)
Mutual labels:  openai
jomini
Low level, performance oriented parser for save and game files from EU4, CK3, HOI4, Vic3, Imperator, and other PDS titles.
Stars: ✭ 40 (-85.24%)
Mutual labels:  text
Deepsegment
A sentence segmenter that actually works!
Stars: ✭ 211 (-22.14%)
Mutual labels:  text
react-watermark-module
React水印组件,支持图片水印,文字水印。
Stars: ✭ 31 (-88.56%)
Mutual labels:  text
J2N
Java-like Components for .NET
Stars: ✭ 37 (-86.35%)
Mutual labels:  text
MailDemon
Smtp server for mass emailing, managing email lists and more. Built on .NET Core. Linux, MAC and Windows compatible.
Stars: ✭ 113 (-58.3%)
Mutual labels:  text
Text
An efficient packed, immutable Unicode text type for Haskell, with a powerful loop fusion optimization framework.
Stars: ✭ 248 (-8.49%)
Mutual labels:  text
DotGrok
Parse text with pattern. Inspired by grok filter.
Stars: ✭ 26 (-90.41%)
Mutual labels:  text
textalyzer
Analyze key metrics like number of words, readability, complexity, etc. of any kind of text
Stars: ✭ 50 (-81.55%)
Mutual labels:  text
Stubble
Trimmed down {{mustache}} templates in .NET
Stars: ✭ 247 (-8.86%)
Mutual labels:  text
react-bones
💀 Dead simple content loading components for React and React-Native. 💀
Stars: ✭ 42 (-84.5%)
Mutual labels:  text
Swiftrichstring
👩‍🎨 Elegant Attributed String composition in Swift sauce
Stars: ✭ 2,744 (+912.55%)
Mutual labels:  text
TextBoxes
TextBoxes: A Fast Text Detector with a Single Deep Neural Network
Stars: ✭ 625 (+130.63%)
Mutual labels:  text
ru-dalle
Generate images from texts. In Russian
Stars: ✭ 1,606 (+492.62%)
Mutual labels:  openai
readthat
Read Text Data
Stars: ✭ 27 (-90.04%)
Mutual labels:  text
vue-swimlane
A Text Swimlane plugin for Vue.js
Stars: ✭ 71 (-73.8%)
Mutual labels:  text

Contrastive Language-Image Forensic Search

Overview

CLIFS is a proof-of-concept for free text searching through videos for video frames with matching contents. This is done using OpenAI's CLIP model, which is trained to match images with the corresponding captions and vice versa. The searching is done by first extracting features from video frames using the CLIP image encoder and then getting the features for the search query through the CLIP text encoder. The features are then matched by similarity and the top results are returned, if above a set threshold.

To allow easy use of the CLIFS backend, a simple web server running django is used to provide an interface to the search engine.

Examples

To give an idea of the capability of this model, a few examples are shown below, with the search query in bold and the result below. These search queries are done against the 2 minute Sherbrooke video from the UrbanTracker Dataset. Only the top image result for each query is shown. Note that the model is in fact quite capable of OCR.

A truck with the text "odwalla"

alt text

A white BMW car

alt text

A truck with the text "JCN"

alt text

A bicyclist with a blue shirt

alt text

A blue SMART car

alt text

Setup

  1. Run the setup.sh script to setup the folders and optionally download a video file for testing:
./setup.sh
  1. Put your own video files that you want to index in the data/input directory

  2. Build and start the search engine and web server containers through docker-compose:

docker-compose build && docker-compose up

Optionally, a docker-compose file with GPU support can be used if the host environment has a NVIDIA GPU and is setup for docker GPU support:

docker-compose build && docker-compose -f docker-compose-gpu.yml up
  1. Once the features for the files in the data/input directory have been encoded, as shown in the log, navigate to 127.0.0.1:8000 and search away.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].