1.0.4 • Published 6 years ago

timecodejs v1.0.4

Weekly downloads
5
License
GPL-3.0
Repository
github
Last release
6 years ago

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