timecodejs
v1.0.4
Published
Optical Recognition for burnt-in timecode in video
Downloads
106
Readme
Time Code JS
Time code detection on a video frame. Detects 'xx:xx:xx:xx' and 'xx:xx:xx;xx' formats. Runs in a web browser without backend.
Usage
npm install timecodejs
get ocr model dir "newocr.tf/"
<script src="require.js"></script>
<script>
requirejs(['node_modules/timecodejs/dist/timecodeocr'], ()=>{
let ocr = TimecodeOCRPlugin.init(videotag, "newocr.tf/model.json");
let ocrView = new TimecodeOCRView(window.player);
ocrView.initView();
ocr.detectCurrentFrame(tc_and_bbox => {
let tc = tc_and_bbox[0];
let box = tc_and_bbox[1];
timecodeInputElement.value = tc;
TimecodeOCRView.placeFinderBBox(box, ocrView.finder);
});
});
</script>
Build timecodeocr.js Plugin
# Clone the repo
git clone https://github.com/videogorillas/timecodejs.git
cd timecodejs/
# install node_modules/
make install
# webpack src/*.js
make pack
# Install dev http server
pip install rangehttpserver
# Mount test data if needed
ln -s /GTS_Proxy_Source_examples/norm/ ./videos/norm
# Start dev http server
python -m RangeHTTPServer
# Open test HTML in your browser
open http://localhost:8000/test/test_bundle.html
Train OCR model
cd trainModel/
virtualenv -p python3.6 venv/
./venv/bin/activate
pip3 install -r ./requierments.txt
pip3
# Prepare backgound images
find ~/train/coco/train2017/ -type f > ./bcgs.txt
# Train char OCR
CUDA_VISIBLE_DEVICES=0 python newocr.py
# Convert model to TF javascript
tensorflowjs_converter --input_format keras ./checkpoints/newocr2.hdf5 ../newocr.tf/
Train HAAR clssifier
Go to HAAR training home
cd ./haar/
Create positive samples list
unzip cuts.zip find cuts/ -type f > positives.txt
Create negative samples list
mkdir negs/ ln -s /mnt/coco/train2017/ ./negs/train2017 find negs/ -type f > negs/negatives.txt
Create opencv VEC file from positives and negs
./create_samples.sh > haar.log 2>&1 python ./mergevec.py -v ./samples_v6/cuts/ -o samples_v6.vec
Train cascade
mkdir cascade_v6/ ./train_cascade.sh
Validate cascade
python check_cascade.py ./cascade_v6/cascade.xml