Repository files navigation

Tensorflow_Object_Tracking_Video

(Version 0.3, Last Update 10-03-2017)

alt textalt textalt textalt text

The Project follow the below index:

  1. Introduction;
  2. Requitements & Installation;
  3. YOLO Script Usage
    1. Setting Parameters;
    2. Usage.
  4. VID TENSORBOX Script Usage
    1. Setting Parameters;
    2. Usage.
  5. TENSORBOX Tests Files;
  6. Dataset Scripts;
  7. Copyright;
  8. State of the Project.
  9. DOWNLOADS.
  10. Acknowledgements.
  11. Bibliography.

1.Introduction

This Repository is my Master Thesis Project: "Develop a Video Object Tracking with Tensorflow Technology" and it's still developing, so many updates will be made. In this work, I used the architecture and problem solving strategy of the Paper T-CNN(Arxiv), that won last year IMAGENET 2015Teaser Challenge VID. So the whole script architecture will be made of several component in cascade:

  1. Still Image Detection (Return Tracking Results on single Frame);
  2. Temporal Information Detection( Introducing Temporal Information into the DET Results);
  3. Context Information Detection( Introducing Context Information into the DET Results);

Notice that the Still Image Detection component could be unique or decompose into two sub-component:

  1. First: determinate "Where" in the Frame;
  2. Second: determinate "What" in the Frame.

My project use many online tensorflow projects, as:

2.Requirement & Installation

To install the script you only need to download the Repository. To Run the script you have to had installed:

  • Tensorflow;
  • OpenCV;
  • Python;

All the Python library necessary could be installed easily trought pip install package-name. If you want to follow a guide to install the requirements here is the link for a tutorial I wrote for myself and for a course of Deep Learning at UPC.

3.YOLO Script Usage

You only look once (YOLO) is a state-of-the-art, real-time object detection system.## i.Setting Parameters This are the inline terminal argmunts taken from the script, most of them aren't required, only the video path must be specified when we call the script:

parser=argparse.ArgumentParser()
parser.add_argument('--det_frames_folder', default='det_frames/', type=str)
parser.add_argument('--det_result_folder', default='det_results/', type=str)
parser.add_argument('--result_folder', default='summary_result/', type=str)
parser.add_argument('--summary_file', default='results.txt', type=str)
parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--perc', default=5, type=int)
parser.add_argument('--path_video', required=True, type=str)

Now you have to download the weights for YOLO and put them into /YOLO_DET_Alg/weights/.

For YOLO knowledge here you can find Original code(C implementation) & paper.

ii.Usage

After Set the Parameters, we can proceed and run the script:

pythonVID_yolo.py--path_videovideo.mp4

You will see some Terminal Output like:

alt tag

You will see a realtime frames output(like the one here below) and then finally all will be embedded into the Video Output( I uploaded the first two Test I've made in the folder /video_result, you can download them and take a look to the final result. The first one has problems in the frames order, this is why you will see so much flickering in the video image,the problem was then solved and in the second doesn't show frames flickering ):

alt tag

4.VID TENSORBOX Script Usage

i.Setting Parameters

This are the inline terminal argmunts taken from the script, most of them aren't required. As before, only the video path must be specified when we call the script:

parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--hypes', default='./hypes/overfeat_rezoom.json', type=str)
parser.add_argument('--weights', default='./output/save.ckpt-1090000', type=str)
parser.add_argument('--perc', default=2, type=int)
parser.add_argument('--path_video', required=True, type=str)

I will soon put a weight file to download. For train and spec on the multiclass implementation I will add them after the end of my thesis project.

ii.Usage

Download the .zip files linked in the Download section and replace the folders.

Then, after set the parameters, we can proceed and run the script:

pythonVID_tensorbox_multi_class.py--path_videovideo.mp4

5.Tensorbox Tests

In the folder video_result_OVT you can find files result of the runs of the VID TENSOBOX scripts.

6.Dataset Scripts

All the scripts below are for the VID classes so if you wonna adapt them for other you have to simply change the Classes.py file where are defined the correspondencies between codes and names. All the data on the image are made respect a specific Image Ratio, because TENSORBOX works only with 640x480 PNG images, you will have to change the code a little to adapt to your needs. I will provide four scripts:

  1. Process_Dataset_heavy.py: Process your dataset with a brute force approach, you will obtain more bbox and files for each class;
  2. Process_Dataset_lightweight.py: Process your dataset with a lightweight approach making, you will obtain less bbox and files for each class;
  3. Resize_Dataset.py: Resize your dataset to 640x480 PNG images;
  4. Test_Processed_Data.py: Will test that the process end well without errors.

I've also add some file scripts to pre process and prepare the dataset to train the last component, the Inception Model, you can find them in a subfolder of the dataset script folder.

7.Copyright

According to the LICENSE file of the original code,

  • Me and original author hold no liability for any damages;
  • Do not use this on commercial!.

8.State of the Project

  • Support YOLO (SingleClass) DET Algorithm;
  • Support Training ONLY TENSOBOX and INCEPTION Training;
  • USE OF TEMPORAL INFORMATION [This are retrieved through some post processing algorithm I've implemented in the Utils_Video.py file NOT TRAINABLE];
  • Modular Architecture composed in cascade by: Tensorbox (as General Object Detector), Tracker and Smoother and Inception (as Object Classifier);

9.Downloads

Here below the links of the weights file for Inception and Tensorbox from my retraining experiments:

10.Acknowledgements

Thanks to Professors:

  • Elena Baralis from Politecnico di Torino Dipartimento di Automatica e Informatica;
  • Jordi Torres from BSC Department of Computer Science;
  • Xavi Giro ”I” Nieto from UPC Department of Image Processing.

11.Bibliography

i.Course

ii.Classification

iii.Detection

iv.Tracking

About

Object Tracking in Tensorflow ( Localization Detection Classification ) developed to partecipate to ImageNET VID competition

Topics

Resources

Code of conduct

Stars

502 stars

Watchers

50 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Tensorflow_Object_Tracking_Video

(Version 0.3, Last Update 10-03-2017)

alt textalt textalt textalt text

The Project follow the below index:

  1. Introduction;
  2. Requitements & Installation;
  3. YOLO Script Usage
    1. Setting Parameters;
    2. Usage.
  4. VID TENSORBOX Script Usage
    1. Setting Parameters;
    2. Usage.
  5. TENSORBOX Tests Files;
  6. Dataset Scripts;
  7. Copyright;
  8. State of the Project.
  9. DOWNLOADS.
  10. Acknowledgements.
  11. Bibliography.

1.Introduction

This Repository is my Master Thesis Project: "Develop a Video Object Tracking with Tensorflow Technology" and it's still developing, so many updates will be made. In this work, I used the architecture and problem solving strategy of the Paper T-CNN(Arxiv), that won last year IMAGENET 2015Teaser Challenge VID. So the whole script architecture will be made of several component in cascade:

  1. Still Image Detection (Return Tracking Results on single Frame);
  2. Temporal Information Detection( Introducing Temporal Information into the DET Results);
  3. Context Information Detection( Introducing Context Information into the DET Results);

Notice that the Still Image Detection component could be unique or decompose into two sub-component:

  1. First: determinate "Where" in the Frame;
  2. Second: determinate "What" in the Frame.

My project use many online tensorflow projects, as:

2.Requirement & Installation

To install the script you only need to download the Repository. To Run the script you have to had installed:

  • Tensorflow;
  • OpenCV;
  • Python;

All the Python library necessary could be installed easily trought pip install package-name. If you want to follow a guide to install the requirements here is the link for a tutorial I wrote for myself and for a course of Deep Learning at UPC.

3.YOLO Script Usage

You only look once (YOLO) is a state-of-the-art, real-time object detection system.## i.Setting Parameters This are the inline terminal argmunts taken from the script, most of them aren't required, only the video path must be specified when we call the script:

parser=argparse.ArgumentParser()
parser.add_argument('--det_frames_folder', default='det_frames/', type=str)
parser.add_argument('--det_result_folder', default='det_results/', type=str)
parser.add_argument('--result_folder', default='summary_result/', type=str)
parser.add_argument('--summary_file', default='results.txt', type=str)
parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--perc', default=5, type=int)
parser.add_argument('--path_video', required=True, type=str)

Now you have to download the weights for YOLO and put them into /YOLO_DET_Alg/weights/.

For YOLO knowledge here you can find Original code(C implementation) & paper.

ii.Usage

After Set the Parameters, we can proceed and run the script:

pythonVID_yolo.py--path_videovideo.mp4

You will see some Terminal Output like:

alt tag

You will see a realtime frames output(like the one here below) and then finally all will be embedded into the Video Output( I uploaded the first two Test I've made in the folder /video_result, you can download them and take a look to the final result. The first one has problems in the frames order, this is why you will see so much flickering in the video image,the problem was then solved and in the second doesn't show frames flickering ):

alt tag

4.VID TENSORBOX Script Usage

i.Setting Parameters

This are the inline terminal argmunts taken from the script, most of them aren't required. As before, only the video path must be specified when we call the script:

parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--hypes', default='./hypes/overfeat_rezoom.json', type=str)
parser.add_argument('--weights', default='./output/save.ckpt-1090000', type=str)
parser.add_argument('--perc', default=2, type=int)
parser.add_argument('--path_video', required=True, type=str)

I will soon put a weight file to download. For train and spec on the multiclass implementation I will add them after the end of my thesis project.

ii.Usage

Download the .zip files linked in the Download section and replace the folders.

Then, after set the parameters, we can proceed and run the script:

pythonVID_tensorbox_multi_class.py--path_videovideo.mp4

5.Tensorbox Tests

In the folder video_result_OVT you can find files result of the runs of the VID TENSOBOX scripts.

6.Dataset Scripts

All the scripts below are for the VID classes so if you wonna adapt them for other you have to simply change the Classes.py file where are defined the correspondencies between codes and names. All the data on the image are made respect a specific Image Ratio, because TENSORBOX works only with 640x480 PNG images, you will have to change the code a little to adapt to your needs. I will provide four scripts:

  1. Process_Dataset_heavy.py: Process your dataset with a brute force approach, you will obtain more bbox and files for each class;
  2. Process_Dataset_lightweight.py: Process your dataset with a lightweight approach making, you will obtain less bbox and files for each class;
  3. Resize_Dataset.py: Resize your dataset to 640x480 PNG images;
  4. Test_Processed_Data.py: Will test that the process end well without errors.

I've also add some file scripts to pre process and prepare the dataset to train the last component, the Inception Model, you can find them in a subfolder of the dataset script folder.

7.Copyright

According to the LICENSE file of the original code,

  • Me and original author hold no liability for any damages;
  • Do not use this on commercial!.

8.State of the Project

  • Support YOLO (SingleClass) DET Algorithm;
  • Support Training ONLY TENSOBOX and INCEPTION Training;
  • USE OF TEMPORAL INFORMATION [This are retrieved through some post processing algorithm I've implemented in the Utils_Video.py file NOT TRAINABLE];
  • Modular Architecture composed in cascade by: Tensorbox (as General Object Detector), Tracker and Smoother and Inception (as Object Classifier);

9.Downloads

Here below the links of the weights file for Inception and Tensorbox from my retraining experiments:

10.Acknowledgements

Thanks to Professors:

  • Elena Baralis from Politecnico di Torino Dipartimento di Automatica e Informatica;
  • Jordi Torres from BSC Department of Computer Science;
  • Xavi Giro ”I” Nieto from UPC Department of Image Processing.

11.Bibliography

i.Course

ii.Classification

iii.Detection

iv.Tracking

About

Object Tracking in Tensorflow ( Localization Detection Classification ) developed to partecipate to ImageNET VID competition

Topics

Resources

Code of conduct

Stars

502 stars

Watchers

50 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Tensorflow_Object_Tracking_Video

(Version 0.3, Last Update 10-03-2017)

alt textalt textalt textalt text

The Project follow the below index:

  1. Introduction;
  2. Requitements & Installation;
  3. YOLO Script Usage
    1. Setting Parameters;
    2. Usage.
  4. VID TENSORBOX Script Usage
    1. Setting Parameters;
    2. Usage.
  5. TENSORBOX Tests Files;
  6. Dataset Scripts;
  7. Copyright;
  8. State of the Project.
  9. DOWNLOADS.
  10. Acknowledgements.
  11. Bibliography.

1.Introduction

This Repository is my Master Thesis Project: "Develop a Video Object Tracking with Tensorflow Technology" and it's still developing, so many updates will be made. In this work, I used the architecture and problem solving strategy of the Paper T-CNN(Arxiv), that won last year IMAGENET 2015Teaser Challenge VID. So the whole script architecture will be made of several component in cascade:

  1. Still Image Detection (Return Tracking Results on single Frame);
  2. Temporal Information Detection( Introducing Temporal Information into the DET Results);
  3. Context Information Detection( Introducing Context Information into the DET Results);

Notice that the Still Image Detection component could be unique or decompose into two sub-component:

  1. First: determinate "Where" in the Frame;
  2. Second: determinate "What" in the Frame.

My project use many online tensorflow projects, as:

2.Requirement & Installation

To install the script you only need to download the Repository. To Run the script you have to had installed:

  • Tensorflow;
  • OpenCV;
  • Python;

All the Python library necessary could be installed easily trought pip install package-name. If you want to follow a guide to install the requirements here is the link for a tutorial I wrote for myself and for a course of Deep Learning at UPC.

3.YOLO Script Usage

You only look once (YOLO) is a state-of-the-art, real-time object detection system.## i.Setting Parameters This are the inline terminal argmunts taken from the script, most of them aren't required, only the video path must be specified when we call the script:

parser=argparse.ArgumentParser()
parser.add_argument('--det_frames_folder', default='det_frames/', type=str)
parser.add_argument('--det_result_folder', default='det_results/', type=str)
parser.add_argument('--result_folder', default='summary_result/', type=str)
parser.add_argument('--summary_file', default='results.txt', type=str)
parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--perc', default=5, type=int)
parser.add_argument('--path_video', required=True, type=str)

Now you have to download the weights for YOLO and put them into /YOLO_DET_Alg/weights/.

For YOLO knowledge here you can find Original code(C implementation) & paper.

ii.Usage

After Set the Parameters, we can proceed and run the script:

pythonVID_yolo.py--path_videovideo.mp4

You will see some Terminal Output like:

alt tag

You will see a realtime frames output(like the one here below) and then finally all will be embedded into the Video Output( I uploaded the first two Test I've made in the folder /video_result, you can download them and take a look to the final result. The first one has problems in the frames order, this is why you will see so much flickering in the video image,the problem was then solved and in the second doesn't show frames flickering ):

alt tag

4.VID TENSORBOX Script Usage

i.Setting Parameters

This are the inline terminal argmunts taken from the script, most of them aren't required. As before, only the video path must be specified when we call the script:

parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--hypes', default='./hypes/overfeat_rezoom.json', type=str)
parser.add_argument('--weights', default='./output/save.ckpt-1090000', type=str)
parser.add_argument('--perc', default=2, type=int)
parser.add_argument('--path_video', required=True, type=str)

I will soon put a weight file to download. For train and spec on the multiclass implementation I will add them after the end of my thesis project.

ii.Usage

Download the .zip files linked in the Download section and replace the folders.

Then, after set the parameters, we can proceed and run the script:

pythonVID_tensorbox_multi_class.py--path_videovideo.mp4

5.Tensorbox Tests

In the folder video_result_OVT you can find files result of the runs of the VID TENSOBOX scripts.

6.Dataset Scripts

All the scripts below are for the VID classes so if you wonna adapt them for other you have to simply change the Classes.py file where are defined the correspondencies between codes and names. All the data on the image are made respect a specific Image Ratio, because TENSORBOX works only with 640x480 PNG images, you will have to change the code a little to adapt to your needs. I will provide four scripts:

  1. Process_Dataset_heavy.py: Process your dataset with a brute force approach, you will obtain more bbox and files for each class;
  2. Process_Dataset_lightweight.py: Process your dataset with a lightweight approach making, you will obtain less bbox and files for each class;
  3. Resize_Dataset.py: Resize your dataset to 640x480 PNG images;
  4. Test_Processed_Data.py: Will test that the process end well without errors.

I've also add some file scripts to pre process and prepare the dataset to train the last component, the Inception Model, you can find them in a subfolder of the dataset script folder.

7.Copyright

According to the LICENSE file of the original code,

  • Me and original author hold no liability for any damages;
  • Do not use this on commercial!.

8.State of the Project

  • Support YOLO (SingleClass) DET Algorithm;
  • Support Training ONLY TENSOBOX and INCEPTION Training;
  • USE OF TEMPORAL INFORMATION [This are retrieved through some post processing algorithm I've implemented in the Utils_Video.py file NOT TRAINABLE];
  • Modular Architecture composed in cascade by: Tensorbox (as General Object Detector), Tracker and Smoother and Inception (as Object Classifier);

9.Downloads

Here below the links of the weights file for Inception and Tensorbox from my retraining experiments:

10.Acknowledgements

Thanks to Professors:

  • Elena Baralis from Politecnico di Torino Dipartimento di Automatica e Informatica;
  • Jordi Torres from BSC Department of Computer Science;
  • Xavi Giro ”I” Nieto from UPC Department of Image Processing.

11.Bibliography

i.Course

ii.Classification

iii.Detection

iv.Tracking

About

Object Tracking in Tensorflow ( Localization Detection Classification ) developed to partecipate to ImageNET VID competition

Topics

Resources

Code of conduct

Stars

502 stars

Watchers

50 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Tensorflow_Object_Tracking_Video

(Version 0.3, Last Update 10-03-2017)

alt textalt textalt textalt text

The Project follow the below index:

  1. Introduction;
  2. Requitements & Installation;
  3. YOLO Script Usage
    1. Setting Parameters;
    2. Usage.
  4. VID TENSORBOX Script Usage
    1. Setting Parameters;
    2. Usage.
  5. TENSORBOX Tests Files;
  6. Dataset Scripts;
  7. Copyright;
  8. State of the Project.
  9. DOWNLOADS.
  10. Acknowledgements.
  11. Bibliography.

1.Introduction

This Repository is my Master Thesis Project: "Develop a Video Object Tracking with Tensorflow Technology" and it's still developing, so many updates will be made. In this work, I used the architecture and problem solving strategy of the Paper T-CNN(Arxiv), that won last year IMAGENET 2015Teaser Challenge VID. So the whole script architecture will be made of several component in cascade:

  1. Still Image Detection (Return Tracking Results on single Frame);
  2. Temporal Information Detection( Introducing Temporal Information into the DET Results);
  3. Context Information Detection( Introducing Context Information into the DET Results);

Notice that the Still Image Detection component could be unique or decompose into two sub-component:

  1. First: determinate "Where" in the Frame;
  2. Second: determinate "What" in the Frame.

My project use many online tensorflow projects, as:

2.Requirement & Installation

To install the script you only need to download the Repository. To Run the script you have to had installed:

  • Tensorflow;
  • OpenCV;
  • Python;

All the Python library necessary could be installed easily trought pip install package-name. If you want to follow a guide to install the requirements here is the link for a tutorial I wrote for myself and for a course of Deep Learning at UPC.

3.YOLO Script Usage

You only look once (YOLO) is a state-of-the-art, real-time object detection system.## i.Setting Parameters This are the inline terminal argmunts taken from the script, most of them aren't required, only the video path must be specified when we call the script:

parser=argparse.ArgumentParser()
parser.add_argument('--det_frames_folder', default='det_frames/', type=str)
parser.add_argument('--det_result_folder', default='det_results/', type=str)
parser.add_argument('--result_folder', default='summary_result/', type=str)
parser.add_argument('--summary_file', default='results.txt', type=str)
parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--perc', default=5, type=int)
parser.add_argument('--path_video', required=True, type=str)

Now you have to download the weights for YOLO and put them into /YOLO_DET_Alg/weights/.

For YOLO knowledge here you can find Original code(C implementation) & paper.

ii.Usage

After Set the Parameters, we can proceed and run the script:

pythonVID_yolo.py--path_videovideo.mp4

You will see some Terminal Output like:

alt tag

You will see a realtime frames output(like the one here below) and then finally all will be embedded into the Video Output( I uploaded the first two Test I've made in the folder /video_result, you can download them and take a look to the final result. The first one has problems in the frames order, this is why you will see so much flickering in the video image,the problem was then solved and in the second doesn't show frames flickering ):

alt tag

4.VID TENSORBOX Script Usage

i.Setting Parameters

This are the inline terminal argmunts taken from the script, most of them aren't required. As before, only the video path must be specified when we call the script:

parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--hypes', default='./hypes/overfeat_rezoom.json', type=str)
parser.add_argument('--weights', default='./output/save.ckpt-1090000', type=str)
parser.add_argument('--perc', default=2, type=int)
parser.add_argument('--path_video', required=True, type=str)

I will soon put a weight file to download. For train and spec on the multiclass implementation I will add them after the end of my thesis project.

ii.Usage

Download the .zip files linked in the Download section and replace the folders.

Then, after set the parameters, we can proceed and run the script:

pythonVID_tensorbox_multi_class.py--path_videovideo.mp4

5.Tensorbox Tests

In the folder video_result_OVT you can find files result of the runs of the VID TENSOBOX scripts.

6.Dataset Scripts

All the scripts below are for the VID classes so if you wonna adapt them for other you have to simply change the Classes.py file where are defined the correspondencies between codes and names. All the data on the image are made respect a specific Image Ratio, because TENSORBOX works only with 640x480 PNG images, you will have to change the code a little to adapt to your needs. I will provide four scripts:

  1. Process_Dataset_heavy.py: Process your dataset with a brute force approach, you will obtain more bbox and files for each class;
  2. Process_Dataset_lightweight.py: Process your dataset with a lightweight approach making, you will obtain less bbox and files for each class;
  3. Resize_Dataset.py: Resize your dataset to 640x480 PNG images;
  4. Test_Processed_Data.py: Will test that the process end well without errors.

I've also add some file scripts to pre process and prepare the dataset to train the last component, the Inception Model, you can find them in a subfolder of the dataset script folder.

7.Copyright

According to the LICENSE file of the original code,

  • Me and original author hold no liability for any damages;
  • Do not use this on commercial!.

8.State of the Project

  • Support YOLO (SingleClass) DET Algorithm;
  • Support Training ONLY TENSOBOX and INCEPTION Training;
  • USE OF TEMPORAL INFORMATION [This are retrieved through some post processing algorithm I've implemented in the Utils_Video.py file NOT TRAINABLE];
  • Modular Architecture composed in cascade by: Tensorbox (as General Object Detector), Tracker and Smoother and Inception (as Object Classifier);

9.Downloads

Here below the links of the weights file for Inception and Tensorbox from my retraining experiments:

10.Acknowledgements

Thanks to Professors:

  • Elena Baralis from Politecnico di Torino Dipartimento di Automatica e Informatica;
  • Jordi Torres from BSC Department of Computer Science;
  • Xavi Giro ”I” Nieto from UPC Department of Image Processing.

11.Bibliography

i.Course

ii.Classification

iii.Detection

iv.Tracking

About

Object Tracking in Tensorflow ( Localization Detection Classification ) developed to partecipate to ImageNET VID competition

Topics

Resources

Code of conduct

Stars

502 stars

Watchers

50 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Tensorflow_Object_Tracking_Video

(Version 0.3, Last Update 10-03-2017)

alt textalt textalt textalt text

The Project follow the below index:

  1. Introduction;
  2. Requitements & Installation;
  3. YOLO Script Usage
    1. Setting Parameters;
    2. Usage.
  4. VID TENSORBOX Script Usage
    1. Setting Parameters;
    2. Usage.
  5. TENSORBOX Tests Files;
  6. Dataset Scripts;
  7. Copyright;
  8. State of the Project.
  9. DOWNLOADS.
  10. Acknowledgements.
  11. Bibliography.

1.Introduction

This Repository is my Master Thesis Project: "Develop a Video Object Tracking with Tensorflow Technology" and it's still developing, so many updates will be made. In this work, I used the architecture and problem solving strategy of the Paper T-CNN(Arxiv), that won last year IMAGENET 2015Teaser Challenge VID. So the whole script architecture will be made of several component in cascade:

  1. Still Image Detection (Return Tracking Results on single Frame);
  2. Temporal Information Detection( Introducing Temporal Information into the DET Results);
  3. Context Information Detection( Introducing Context Information into the DET Results);

Notice that the Still Image Detection component could be unique or decompose into two sub-component:

  1. First: determinate "Where" in the Frame;
  2. Second: determinate "What" in the Frame.

My project use many online tensorflow projects, as:

2.Requirement & Installation

To install the script you only need to download the Repository. To Run the script you have to had installed:

  • Tensorflow;
  • OpenCV;
  • Python;

All the Python library necessary could be installed easily trought pip install package-name. If you want to follow a guide to install the requirements here is the link for a tutorial I wrote for myself and for a course of Deep Learning at UPC.

3.YOLO Script Usage

You only look once (YOLO) is a state-of-the-art, real-time object detection system.## i.Setting Parameters This are the inline terminal argmunts taken from the script, most of them aren't required, only the video path must be specified when we call the script:

parser=argparse.ArgumentParser()
parser.add_argument('--det_frames_folder', default='det_frames/', type=str)
parser.add_argument('--det_result_folder', default='det_results/', type=str)
parser.add_argument('--result_folder', default='summary_result/', type=str)
parser.add_argument('--summary_file', default='results.txt', type=str)
parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--perc', default=5, type=int)
parser.add_argument('--path_video', required=True, type=str)

Now you have to download the weights for YOLO and put them into /YOLO_DET_Alg/weights/.

For YOLO knowledge here you can find Original code(C implementation) & paper.

ii.Usage

After Set the Parameters, we can proceed and run the script:

pythonVID_yolo.py--path_videovideo.mp4

You will see some Terminal Output like:

alt tag

You will see a realtime frames output(like the one here below) and then finally all will be embedded into the Video Output( I uploaded the first two Test I've made in the folder /video_result, you can download them and take a look to the final result. The first one has problems in the frames order, this is why you will see so much flickering in the video image,the problem was then solved and in the second doesn't show frames flickering ):

alt tag

4.VID TENSORBOX Script Usage

i.Setting Parameters

This are the inline terminal argmunts taken from the script, most of them aren't required. As before, only the video path must be specified when we call the script:

parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--hypes', default='./hypes/overfeat_rezoom.json', type=str)
parser.add_argument('--weights', default='./output/save.ckpt-1090000', type=str)
parser.add_argument('--perc', default=2, type=int)
parser.add_argument('--path_video', required=True, type=str)

I will soon put a weight file to download. For train and spec on the multiclass implementation I will add them after the end of my thesis project.

ii.Usage

Download the .zip files linked in the Download section and replace the folders.

Then, after set the parameters, we can proceed and run the script:

pythonVID_tensorbox_multi_class.py--path_videovideo.mp4

5.Tensorbox Tests

In the folder video_result_OVT you can find files result of the runs of the VID TENSOBOX scripts.

6.Dataset Scripts

All the scripts below are for the VID classes so if you wonna adapt them for other you have to simply change the Classes.py file where are defined the correspondencies between codes and names. All the data on the image are made respect a specific Image Ratio, because TENSORBOX works only with 640x480 PNG images, you will have to change the code a little to adapt to your needs. I will provide four scripts:

  1. Process_Dataset_heavy.py: Process your dataset with a brute force approach, you will obtain more bbox and files for each class;
  2. Process_Dataset_lightweight.py: Process your dataset with a lightweight approach making, you will obtain less bbox and files for each class;
  3. Resize_Dataset.py: Resize your dataset to 640x480 PNG images;
  4. Test_Processed_Data.py: Will test that the process end well without errors.

I've also add some file scripts to pre process and prepare the dataset to train the last component, the Inception Model, you can find them in a subfolder of the dataset script folder.

7.Copyright

According to the LICENSE file of the original code,

  • Me and original author hold no liability for any damages;
  • Do not use this on commercial!.

8.State of the Project

  • Support YOLO (SingleClass) DET Algorithm;
  • Support Training ONLY TENSOBOX and INCEPTION Training;
  • USE OF TEMPORAL INFORMATION [This are retrieved through some post processing algorithm I've implemented in the Utils_Video.py file NOT TRAINABLE];
  • Modular Architecture composed in cascade by: Tensorbox (as General Object Detector), Tracker and Smoother and Inception (as Object Classifier);

9.Downloads

Here below the links of the weights file for Inception and Tensorbox from my retraining experiments:

10.Acknowledgements

Thanks to Professors:

  • Elena Baralis from Politecnico di Torino Dipartimento di Automatica e Informatica;
  • Jordi Torres from BSC Department of Computer Science;
  • Xavi Giro ”I” Nieto from UPC Department of Image Processing.

11.Bibliography

i.Course

ii.Classification

iii.Detection

iv.Tracking

About

Object Tracking in Tensorflow ( Localization Detection Classification ) developed to partecipate to ImageNET VID competition

Topics

Resources

Code of conduct

Stars

502 stars

Watchers

50 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Tensorflow_Object_Tracking_Video

(Version 0.3, Last Update 10-03-2017)

alt textalt textalt textalt text

The Project follow the below index:

  1. Introduction;
  2. Requitements & Installation;
  3. YOLO Script Usage
    1. Setting Parameters;
    2. Usage.
  4. VID TENSORBOX Script Usage
    1. Setting Parameters;
    2. Usage.
  5. TENSORBOX Tests Files;
  6. Dataset Scripts;
  7. Copyright;
  8. State of the Project.
  9. DOWNLOADS.
  10. Acknowledgements.
  11. Bibliography.

1.Introduction

This Repository is my Master Thesis Project: "Develop a Video Object Tracking with Tensorflow Technology" and it's still developing, so many updates will be made. In this work, I used the architecture and problem solving strategy of the Paper T-CNN(Arxiv), that won last year IMAGENET 2015Teaser Challenge VID. So the whole script architecture will be made of several component in cascade:

  1. Still Image Detection (Return Tracking Results on single Frame);
  2. Temporal Information Detection( Introducing Temporal Information into the DET Results);
  3. Context Information Detection( Introducing Context Information into the DET Results);

Notice that the Still Image Detection component could be unique or decompose into two sub-component:

  1. First: determinate "Where" in the Frame;
  2. Second: determinate "What" in the Frame.

My project use many online tensorflow projects, as:

2.Requirement & Installation

To install the script you only need to download the Repository. To Run the script you have to had installed:

  • Tensorflow;
  • OpenCV;
  • Python;

All the Python library necessary could be installed easily trought pip install package-name. If you want to follow a guide to install the requirements here is the link for a tutorial I wrote for myself and for a course of Deep Learning at UPC.

3.YOLO Script Usage

You only look once (YOLO) is a state-of-the-art, real-time object detection system.## i.Setting Parameters This are the inline terminal argmunts taken from the script, most of them aren't required, only the video path must be specified when we call the script:

parser=argparse.ArgumentParser()
parser.add_argument('--det_frames_folder', default='det_frames/', type=str)
parser.add_argument('--det_result_folder', default='det_results/', type=str)
parser.add_argument('--result_folder', default='summary_result/', type=str)
parser.add_argument('--summary_file', default='results.txt', type=str)
parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--perc', default=5, type=int)
parser.add_argument('--path_video', required=True, type=str)

Now you have to download the weights for YOLO and put them into /YOLO_DET_Alg/weights/.

For YOLO knowledge here you can find Original code(C implementation) & paper.

ii.Usage

After Set the Parameters, we can proceed and run the script:

pythonVID_yolo.py--path_videovideo.mp4

You will see some Terminal Output like:

alt tag

You will see a realtime frames output(like the one here below) and then finally all will be embedded into the Video Output( I uploaded the first two Test I've made in the folder /video_result, you can download them and take a look to the final result. The first one has problems in the frames order, this is why you will see so much flickering in the video image,the problem was then solved and in the second doesn't show frames flickering ):

alt tag

4.VID TENSORBOX Script Usage

i.Setting Parameters

This are the inline terminal argmunts taken from the script, most of them aren't required. As before, only the video path must be specified when we call the script:

parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--hypes', default='./hypes/overfeat_rezoom.json', type=str)
parser.add_argument('--weights', default='./output/save.ckpt-1090000', type=str)
parser.add_argument('--perc', default=2, type=int)
parser.add_argument('--path_video', required=True, type=str)

I will soon put a weight file to download. For train and spec on the multiclass implementation I will add them after the end of my thesis project.

ii.Usage

Download the .zip files linked in the Download section and replace the folders.

Then, after set the parameters, we can proceed and run the script:

pythonVID_tensorbox_multi_class.py--path_videovideo.mp4

5.Tensorbox Tests

In the folder video_result_OVT you can find files result of the runs of the VID TENSOBOX scripts.

6.Dataset Scripts

All the scripts below are for the VID classes so if you wonna adapt them for other you have to simply change the Classes.py file where are defined the correspondencies between codes and names. All the data on the image are made respect a specific Image Ratio, because TENSORBOX works only with 640x480 PNG images, you will have to change the code a little to adapt to your needs. I will provide four scripts:

  1. Process_Dataset_heavy.py: Process your dataset with a brute force approach, you will obtain more bbox and files for each class;
  2. Process_Dataset_lightweight.py: Process your dataset with a lightweight approach making, you will obtain less bbox and files for each class;
  3. Resize_Dataset.py: Resize your dataset to 640x480 PNG images;
  4. Test_Processed_Data.py: Will test that the process end well without errors.

I've also add some file scripts to pre process and prepare the dataset to train the last component, the Inception Model, you can find them in a subfolder of the dataset script folder.

7.Copyright

According to the LICENSE file of the original code,

  • Me and original author hold no liability for any damages;
  • Do not use this on commercial!.

8.State of the Project

  • Support YOLO (SingleClass) DET Algorithm;
  • Support Training ONLY TENSOBOX and INCEPTION Training;
  • USE OF TEMPORAL INFORMATION [This are retrieved through some post processing algorithm I've implemented in the Utils_Video.py file NOT TRAINABLE];
  • Modular Architecture composed in cascade by: Tensorbox (as General Object Detector), Tracker and Smoother and Inception (as Object Classifier);

9.Downloads

Here below the links of the weights file for Inception and Tensorbox from my retraining experiments:

10.Acknowledgements

Thanks to Professors:

  • Elena Baralis from Politecnico di Torino Dipartimento di Automatica e Informatica;
  • Jordi Torres from BSC Department of Computer Science;
  • Xavi Giro ”I” Nieto from UPC Department of Image Processing.

11.Bibliography

i.Course

ii.Classification

iii.Detection

iv.Tracking

About

Object Tracking in Tensorflow ( Localization Detection Classification ) developed to partecipate to ImageNET VID competition

Topics

Resources

Code of conduct

Stars

502 stars

Watchers

50 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Tensorflow_Object_Tracking_Video

(Version 0.3, Last Update 10-03-2017)

alt textalt textalt textalt text

The Project follow the below index:

  1. Introduction;
  2. Requitements & Installation;
  3. YOLO Script Usage
    1. Setting Parameters;
    2. Usage.
  4. VID TENSORBOX Script Usage
    1. Setting Parameters;
    2. Usage.
  5. TENSORBOX Tests Files;
  6. Dataset Scripts;
  7. Copyright;
  8. State of the Project.
  9. DOWNLOADS.
  10. Acknowledgements.
  11. Bibliography.

1.Introduction

This Repository is my Master Thesis Project: "Develop a Video Object Tracking with Tensorflow Technology" and it's still developing, so many updates will be made. In this work, I used the architecture and problem solving strategy of the Paper T-CNN(Arxiv), that won last year IMAGENET 2015Teaser Challenge VID. So the whole script architecture will be made of several component in cascade:

  1. Still Image Detection (Return Tracking Results on single Frame);
  2. Temporal Information Detection( Introducing Temporal Information into the DET Results);
  3. Context Information Detection( Introducing Context Information into the DET Results);

Notice that the Still Image Detection component could be unique or decompose into two sub-component:

  1. First: determinate "Where" in the Frame;
  2. Second: determinate "What" in the Frame.

My project use many online tensorflow projects, as:

2.Requirement & Installation

To install the script you only need to download the Repository. To Run the script you have to had installed:

  • Tensorflow;
  • OpenCV;
  • Python;

All the Python library necessary could be installed easily trought pip install package-name. If you want to follow a guide to install the requirements here is the link for a tutorial I wrote for myself and for a course of Deep Learning at UPC.

3.YOLO Script Usage

You only look once (YOLO) is a state-of-the-art, real-time object detection system.## i.Setting Parameters This are the inline terminal argmunts taken from the script, most of them aren't required, only the video path must be specified when we call the script:

parser=argparse.ArgumentParser()
parser.add_argument('--det_frames_folder', default='det_frames/', type=str)
parser.add_argument('--det_result_folder', default='det_results/', type=str)
parser.add_argument('--result_folder', default='summary_result/', type=str)
parser.add_argument('--summary_file', default='results.txt', type=str)
parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--perc', default=5, type=int)
parser.add_argument('--path_video', required=True, type=str)

Now you have to download the weights for YOLO and put them into /YOLO_DET_Alg/weights/.

For YOLO knowledge here you can find Original code(C implementation) & paper.

ii.Usage

After Set the Parameters, we can proceed and run the script:

pythonVID_yolo.py--path_videovideo.mp4

You will see some Terminal Output like:

alt tag

You will see a realtime frames output(like the one here below) and then finally all will be embedded into the Video Output( I uploaded the first two Test I've made in the folder /video_result, you can download them and take a look to the final result. The first one has problems in the frames order, this is why you will see so much flickering in the video image,the problem was then solved and in the second doesn't show frames flickering ):

alt tag

4.VID TENSORBOX Script Usage

i.Setting Parameters

This are the inline terminal argmunts taken from the script, most of them aren't required. As before, only the video path must be specified when we call the script:

parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--hypes', default='./hypes/overfeat_rezoom.json', type=str)
parser.add_argument('--weights', default='./output/save.ckpt-1090000', type=str)
parser.add_argument('--perc', default=2, type=int)
parser.add_argument('--path_video', required=True, type=str)

I will soon put a weight file to download. For train and spec on the multiclass implementation I will add them after the end of my thesis project.

ii.Usage

Download the .zip files linked in the Download section and replace the folders.

Then, after set the parameters, we can proceed and run the script:

pythonVID_tensorbox_multi_class.py--path_videovideo.mp4

5.Tensorbox Tests

In the folder video_result_OVT you can find files result of the runs of the VID TENSOBOX scripts.

6.Dataset Scripts

All the scripts below are for the VID classes so if you wonna adapt them for other you have to simply change the Classes.py file where are defined the correspondencies between codes and names. All the data on the image are made respect a specific Image Ratio, because TENSORBOX works only with 640x480 PNG images, you will have to change the code a little to adapt to your needs. I will provide four scripts:

  1. Process_Dataset_heavy.py: Process your dataset with a brute force approach, you will obtain more bbox and files for each class;
  2. Process_Dataset_lightweight.py: Process your dataset with a lightweight approach making, you will obtain less bbox and files for each class;
  3. Resize_Dataset.py: Resize your dataset to 640x480 PNG images;
  4. Test_Processed_Data.py: Will test that the process end well without errors.

I've also add some file scripts to pre process and prepare the dataset to train the last component, the Inception Model, you can find them in a subfolder of the dataset script folder.

7.Copyright

According to the LICENSE file of the original code,

  • Me and original author hold no liability for any damages;
  • Do not use this on commercial!.

8.State of the Project

  • Support YOLO (SingleClass) DET Algorithm;
  • Support Training ONLY TENSOBOX and INCEPTION Training;
  • USE OF TEMPORAL INFORMATION [This are retrieved through some post processing algorithm I've implemented in the Utils_Video.py file NOT TRAINABLE];
  • Modular Architecture composed in cascade by: Tensorbox (as General Object Detector), Tracker and Smoother and Inception (as Object Classifier);

9.Downloads

Here below the links of the weights file for Inception and Tensorbox from my retraining experiments:

10.Acknowledgements

Thanks to Professors:

  • Elena Baralis from Politecnico di Torino Dipartimento di Automatica e Informatica;
  • Jordi Torres from BSC Department of Computer Science;
  • Xavi Giro ”I” Nieto from UPC Department of Image Processing.

11.Bibliography

i.Course

ii.Classification

iii.Detection

iv.Tracking

About

Object Tracking in Tensorflow ( Localization Detection Classification ) developed to partecipate to ImageNET VID competition

Topics

Resources

Code of conduct

Stars

502 stars

Watchers

50 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Tensorflow_Object_Tracking_Video

(Version 0.3, Last Update 10-03-2017)

alt textalt textalt textalt text

The Project follow the below index:

  1. Introduction;
  2. Requitements & Installation;
  3. YOLO Script Usage
    1. Setting Parameters;
    2. Usage.
  4. VID TENSORBOX Script Usage
    1. Setting Parameters;
    2. Usage.
  5. TENSORBOX Tests Files;
  6. Dataset Scripts;
  7. Copyright;
  8. State of the Project.
  9. DOWNLOADS.
  10. Acknowledgements.
  11. Bibliography.

1.Introduction

This Repository is my Master Thesis Project: "Develop a Video Object Tracking with Tensorflow Technology" and it's still developing, so many updates will be made. In this work, I used the architecture and problem solving strategy of the Paper T-CNN(Arxiv), that won last year IMAGENET 2015Teaser Challenge VID. So the whole script architecture will be made of several component in cascade:

  1. Still Image Detection (Return Tracking Results on single Frame);
  2. Temporal Information Detection( Introducing Temporal Information into the DET Results);
  3. Context Information Detection( Introducing Context Information into the DET Results);

Notice that the Still Image Detection component could be unique or decompose into two sub-component:

  1. First: determinate "Where" in the Frame;
  2. Second: determinate "What" in the Frame.

My project use many online tensorflow projects, as:

2.Requirement & Installation

To install the script you only need to download the Repository. To Run the script you have to had installed:

  • Tensorflow;
  • OpenCV;
  • Python;

All the Python library necessary could be installed easily trought pip install package-name. If you want to follow a guide to install the requirements here is the link for a tutorial I wrote for myself and for a course of Deep Learning at UPC.

3.YOLO Script Usage

You only look once (YOLO) is a state-of-the-art, real-time object detection system.## i.Setting Parameters This are the inline terminal argmunts taken from the script, most of them aren't required, only the video path must be specified when we call the script:

parser=argparse.ArgumentParser()
parser.add_argument('--det_frames_folder', default='det_frames/', type=str)
parser.add_argument('--det_result_folder', default='det_results/', type=str)
parser.add_argument('--result_folder', default='summary_result/', type=str)
parser.add_argument('--summary_file', default='results.txt', type=str)
parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--perc', default=5, type=int)
parser.add_argument('--path_video', required=True, type=str)

Now you have to download the weights for YOLO and put them into /YOLO_DET_Alg/weights/.

For YOLO knowledge here you can find Original code(C implementation) & paper.

ii.Usage

After Set the Parameters, we can proceed and run the script:

pythonVID_yolo.py--path_videovideo.mp4

You will see some Terminal Output like:

alt tag

You will see a realtime frames output(like the one here below) and then finally all will be embedded into the Video Output( I uploaded the first two Test I've made in the folder /video_result, you can download them and take a look to the final result. The first one has problems in the frames order, this is why you will see so much flickering in the video image,the problem was then solved and in the second doesn't show frames flickering ):

alt tag

4.VID TENSORBOX Script Usage

i.Setting Parameters

This are the inline terminal argmunts taken from the script, most of them aren't required. As before, only the video path must be specified when we call the script:

parser.add_argument('--output_name', default='output.mp4', type=str)
parser.add_argument('--hypes', default='./hypes/overfeat_rezoom.json', type=str)
parser.add_argument('--weights', default='./output/save.ckpt-1090000', type=str)
parser.add_argument('--perc', default=2, type=int)
parser.add_argument('--path_video', required=True, type=str)

I will soon put a weight file to download. For train and spec on the multiclass implementation I will add them after the end of my thesis project.

ii.Usage

Download the .zip files linked in the Download section and replace the folders.

Then, after set the parameters, we can proceed and run the script:

pythonVID_tensorbox_multi_class.py--path_videovideo.mp4

5.Tensorbox Tests

In the folder video_result_OVT you can find files result of the runs of the VID TENSOBOX scripts.

6.Dataset Scripts

All the scripts below are for the VID classes so if you wonna adapt them for other you have to simply change the Classes.py file where are defined the correspondencies between codes and names. All the data on the image are made respect a specific Image Ratio, because TENSORBOX works only with 640x480 PNG images, you will have to change the code a little to adapt to your needs. I will provide four scripts:

  1. Process_Dataset_heavy.py: Process your dataset with a brute force approach, you will obtain more bbox and files for each class;
  2. Process_Dataset_lightweight.py: Process your dataset with a lightweight approach making, you will obtain less bbox and files for each class;
  3. Resize_Dataset.py: Resize your dataset to 640x480 PNG images;
  4. Test_Processed_Data.py: Will test that the process end well without errors.

I've also add some file scripts to pre process and prepare the dataset to train the last component, the Inception Model, you can find them in a subfolder of the dataset script folder.

7.Copyright

According to the LICENSE file of the original code,

  • Me and original author hold no liability for any damages;
  • Do not use this on commercial!.

8.State of the Project

  • Support YOLO (SingleClass) DET Algorithm;
  • Support Training ONLY TENSOBOX and INCEPTION Training;
  • USE OF TEMPORAL INFORMATION [This are retrieved through some post processing algorithm I've implemented in the Utils_Video.py file NOT TRAINABLE];
  • Modular Architecture composed in cascade by: Tensorbox (as General Object Detector), Tracker and Smoother and Inception (as Object Classifier);

9.Downloads

Here below the links of the weights file for Inception and Tensorbox from my retraining experiments:

10.Acknowledgements

Thanks to Professors:

  • Elena Baralis from Politecnico di Torino Dipartimento di Automatica e Informatica;
  • Jordi Torres from BSC Department of Computer Science;
  • Xavi Giro ”I” Nieto from UPC Department of Image Processing.

11.Bibliography

i.Course

ii.Classification

iii.Detection

iv.Tracking

About

Object Tracking in Tensorflow ( Localization Detection Classification ) developed to partecipate to ImageNET VID competition

Topics

Resources

Code of conduct

Stars

502 stars

Watchers

50 watching

Forks

Releases

Packages

Contributors

Languages