Skip to content

Commit b121b43

Browse files
committedJan 24, 2013
added sample data for aeroplanes and cows from Tomasz exemplars for VOC
1 parent e54b22f commit b121b43

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+462
-111
lines changed
 

‎README.html

+77-86
Original file line numberDiff line numberDiff line change
@@ -138,19 +138,29 @@ <h1 class="title">esvmTestCPP</h1>
138138
</p>
139139

140140
<div id="outline-container-1" class="outline-2">
141-
<h2 id="sec-1"><span class="section-number-2">1</span> Introduction</h2>
141+
<h2 id="sec-1"><span class="section-number-2">1</span> Tech Report</h2>
142142
<div class="outline-text-2" id="text-1">
143143

144-
145-
<p>
146-
<code>esvmTestCPP</code> is an implementation of the MATLAB Exemplar
147-
SVM<sup><a class="footref" name="fnr.1" href="#fn.1">1</a></sup> testing pipeline
148-
written in <code>C++</code>. Computationally intensive parts were written using
149-
ISPC <sup><a class="footref" name="fnr.2" href="#fn.2">2</a></sup> for SIMD performance.
144+
<p> The details and aim of this project can be found in our tech
145+
report. Please cite it if you use this code for any purpose. The
146+
code can be downloaded freely from our <a href="https://github.com/imisra/esvmTestCPP">github project page</a>.
147+
</p>
148+
<p>
149+
Ishan Misra, Abhinav Shrivastava, Martial Hebert - "<i>HOG and Spatial Convolution on SIMD Architecture</i>" CMU Tech Report XXXX (2013)
150150
</p>
151+
</div>
152+
153+
</div>
154+
155+
<div id="outline-container-2" class="outline-2">
156+
<h2 id="sec-2"><span class="section-number-2">2</span> Introduction</h2>
157+
<div class="outline-text-2" id="text-2">
158+
159+
151160
<p>
152-
If you use this code, please cite our tech-report <sup><a class="footref" name="fnr.3" href="#fn.3">3</a></sup>. The code
153-
can be downloaded freely from github <sup><a class="footref" name="fnr.4" href="#fn.4">4</a></sup>.
161+
<code>esvmTestCPP</code> is an implementation of the MATLAB <a href="https://github.com/abhi2610/exemplarsvm">Exemplar-SVM</a>
162+
testing pipeline written in <code>C++</code>. Computationally intensive parts
163+
were written using <a href="http://ispc.github.com/">ISPC</a> for SIMD performance.
154164
</p>
155165
<p>
156166
One may also use this code just for computing HOG features or
@@ -172,9 +182,9 @@ <h2 id="sec-1"><span class="section-number-2">1</span> Introduction</h2>
172182

173183
</div>
174184

175-
<div id="outline-container-2" class="outline-2">
176-
<h2 id="sec-2"><span class="section-number-2">2</span> Requirements</h2>
177-
<div class="outline-text-2" id="text-2">
185+
<div id="outline-container-3" class="outline-2">
186+
<h2 id="sec-3"><span class="section-number-2">3</span> Requirements</h2>
187+
<div class="outline-text-2" id="text-3">
178188

179189

180190
<p>
@@ -201,9 +211,9 @@ <h2 id="sec-2"><span class="section-number-2">2</span> Requirements</h2>
201211

202212
</div>
203213

204-
<div id="outline-container-3" class="outline-2">
205-
<h2 id="sec-3"><span class="section-number-2">3</span> Setup</h2>
206-
<div class="outline-text-2" id="text-3">
214+
<div id="outline-container-4" class="outline-2">
215+
<h2 id="sec-4"><span class="section-number-2">4</span> Setup</h2>
216+
<div class="outline-text-2" id="text-4">
207217

208218

209219
<ol>
@@ -234,9 +244,9 @@ <h2 id="sec-3"><span class="section-number-2">3</span> Setup</h2>
234244

235245
</div>
236246

237-
<div id="outline-container-4" class="outline-2">
238-
<h2 id="sec-4"><span class="section-number-2">4</span> Directory structure</h2>
239-
<div class="outline-text-2" id="text-4">
247+
<div id="outline-container-5" class="outline-2">
248+
<h2 id="sec-5"><span class="section-number-2">5</span> Directory structure</h2>
249+
<div class="outline-text-2" id="text-5">
240250

241251

242252

@@ -260,16 +270,16 @@ <h2 id="sec-4"><span class="section-number-2">4</span> Directory structure</h2>
260270

261271
</div>
262272

263-
<div id="outline-container-5" class="outline-2">
264-
<h2 id="sec-5"><span class="section-number-2">5</span> Getting Started</h2>
265-
<div class="outline-text-2" id="text-5">
273+
<div id="outline-container-6" class="outline-2">
274+
<h2 id="sec-6"><span class="section-number-2">6</span> Getting Started</h2>
275+
<div class="outline-text-2" id="text-6">
266276

267277

268278
</div>
269279

270-
<div id="outline-container-5-1" class="outline-3">
271-
<h3 id="sec-5-1"><span class="section-number-3">5.1</span> Input format for Exemplars</h3>
272-
<div class="outline-text-3" id="text-5-1">
280+
<div id="outline-container-6-1" class="outline-3">
281+
<h3 id="sec-6-1"><span class="section-number-3">6.1</span> Input format for Exemplars</h3>
282+
<div class="outline-text-3" id="text-6-1">
273283

274284
<p> Suppose you have \(C\) classes, and for each class you have \(N_{i}\)
275285
(\(i=1\ldots C\)) exemplars. The input format as of this version is
@@ -289,9 +299,9 @@ <h3 id="sec-5-1"><span class="section-number-3">5.1</span> Input format for Exem
289299

290300
</div>
291301

292-
<div id="outline-container-5-1-1" class="outline-4">
293-
<h4 id="sec-5-1-1"><span class="section-number-4">5.1.1</span> Generating the exemplar data files</h4>
294-
<div class="outline-text-4" id="text-5-1-1">
302+
<div id="outline-container-6-1-1" class="outline-4">
303+
<h4 id="sec-6-1-1"><span class="section-number-4">6.1.1</span> Generating the exemplar data files</h4>
304+
<div class="outline-text-4" id="text-6-1-1">
295305

296306
<p> The exemplar data is written in ASCII files. These files can be
297307
generated by using the <code>writeHogTxt</code> function in C++. It is also
@@ -310,9 +320,9 @@ <h4 id="sec-5-1-1"><span class="section-number-4">5.1.1</span> Generating the ex
310320

311321
</div>
312322

313-
<div id="outline-container-5-2" class="outline-3">
314-
<h3 id="sec-5-2"><span class="section-number-3">5.2</span> Parameters</h3>
315-
<div class="outline-text-3" id="text-5-2">
323+
<div id="outline-container-6-2" class="outline-3">
324+
<h3 id="sec-6-2"><span class="section-number-3">6.2</span> Parameters</h3>
325+
<div class="outline-text-3" id="text-6-2">
316326

317327
<p> The parameters for exemplar testing can be put together in the
318328
<code>struct esvmParameters</code>. A user can get default parameters by
@@ -367,9 +377,9 @@ <h3 id="sec-5-2"><span class="section-number-3">5.2</span> Parameters</h3>
367377

368378
</div>
369379

370-
<div id="outline-container-5-3" class="outline-3">
371-
<h3 id="sec-5-3"><span class="section-number-3">5.3</span> Bounding box information</h3>
372-
<div class="outline-text-3" id="text-5-3">
380+
<div id="outline-container-6-3" class="outline-3">
381+
<h3 id="sec-6-3"><span class="section-number-3">6.3</span> Bounding box information</h3>
382+
<div class="outline-text-3" id="text-6-3">
373383

374384
<p> The bounding boxes are stored in <code>struct esvmBoxes</code>. It internally
375385
stores them in a <code>float</code> array. It is recommended to use
@@ -381,9 +391,9 @@ <h3 id="sec-5-3"><span class="section-number-3">5.3</span> Bounding box informat
381391

382392
</div>
383393

384-
<div id="outline-container-5-4" class="outline-3">
385-
<h3 id="sec-5-4"><span class="section-number-3">5.4</span> Precision issues</h3>
386-
<div class="outline-text-3" id="text-5-4">
394+
<div id="outline-container-6-4" class="outline-3">
395+
<h3 id="sec-6-4"><span class="section-number-3">6.4</span> Precision issues</h3>
396+
<div class="outline-text-3" id="text-6-4">
387397

388398
<p> Detection precision depends on which image resize function is
389399
used. As far as we can tell, it is best to use the same resize function
@@ -401,9 +411,9 @@ <h3 id="sec-5-4"><span class="section-number-3">5.4</span> Precision issues</h3>
401411

402412
</div>
403413

404-
<div id="outline-container-5-5" class="outline-3">
405-
<h3 id="sec-5-5"><span class="section-number-3">5.5</span> Performance characteristics</h3>
406-
<div class="outline-text-3" id="text-5-5">
414+
<div id="outline-container-6-5" class="outline-3">
415+
<h3 id="sec-6-5"><span class="section-number-3">6.5</span> Performance characteristics</h3>
416+
<div class="outline-text-3" id="text-6-5">
407417

408418
<p> Read the Tech-Report for more details on how the performance
409419
compares to the MATLAB testing pipeline.
@@ -412,16 +422,16 @@ <h3 id="sec-5-5"><span class="section-number-3">5.5</span> Performance character
412422

413423
</div>
414424

415-
<div id="outline-container-6" class="outline-2">
416-
<h2 id="sec-6"><span class="section-number-2">6</span> FAQs</h2>
417-
<div class="outline-text-2" id="text-6">
425+
<div id="outline-container-7" class="outline-2">
426+
<h2 id="sec-7"><span class="section-number-2">7</span> FAQs</h2>
427+
<div class="outline-text-2" id="text-7">
418428

419429

420430
</div>
421431

422-
<div id="outline-container-6-1" class="outline-3">
423-
<h3 id="sec-6-1"><span class="section-number-3">6.1</span> You keep mentioning <code>C++</code>, but all of your programming is <code>C</code> style!</h3>
424-
<div class="outline-text-3" id="text-6-1">
432+
<div id="outline-container-7-1" class="outline-3">
433+
<h3 id="sec-7-1"><span class="section-number-3">7.1</span> You keep mentioning <code>C++</code>, but all of your programming is <code>C</code> style!</h3>
434+
<div class="outline-text-3" id="text-7-1">
425435

426436
<p> Correct. I mention <code>C++</code> because I did use a few <code>STL</code>
427437
libraries. There were a few headaches using <code>C++</code>
@@ -431,29 +441,29 @@ <h3 id="sec-6-1"><span class="section-number-3">6.1</span> You keep mentioning <
431441

432442
</div>
433443

434-
<div id="outline-container-6-2" class="outline-3">
435-
<h3 id="sec-6-2"><span class="section-number-3">6.2</span> Can I use this for HOG computation only ?</h3>
436-
<div class="outline-text-3" id="text-6-2">
444+
<div id="outline-container-7-2" class="outline-3">
445+
<h3 id="sec-7-2"><span class="section-number-3">7.2</span> Can I use this for HOG computation only ?</h3>
446+
<div class="outline-text-3" id="text-7-2">
437447

438448
<p> Yes. Check out examples (<code>demo01</code>, <code>demo02</code>) in the <code>demo</code> directory.
439449
</p>
440450
</div>
441451

442452
</div>
443453

444-
<div id="outline-container-6-3" class="outline-3">
445-
<h3 id="sec-6-3"><span class="section-number-3">6.3</span> Can I use this for Convolution computation only ?</h3>
446-
<div class="outline-text-3" id="text-6-3">
454+
<div id="outline-container-7-3" class="outline-3">
455+
<h3 id="sec-7-3"><span class="section-number-3">7.3</span> Can I use this for Convolution computation only ?</h3>
456+
<div class="outline-text-3" id="text-7-3">
447457

448458
<p> Yes. Check out examples (<code>demo00</code>) in the <code>demos</code> directory.
449459
</p>
450460
</div>
451461

452462
</div>
453463

454-
<div id="outline-container-6-4" class="outline-3">
455-
<h3 id="sec-6-4"><span class="section-number-3">6.4</span> What HOG feature do you compute ?</h3>
456-
<div class="outline-text-3" id="text-6-4">
464+
<div id="outline-container-7-4" class="outline-3">
465+
<h3 id="sec-7-4"><span class="section-number-3">7.4</span> What HOG feature do you compute ?</h3>
466+
<div class="outline-text-3" id="text-7-4">
457467

458468
<p> It is based on the paper
459469
</p><ul>
@@ -479,9 +489,9 @@ <h3 id="sec-6-4"><span class="section-number-3">6.4</span> What HOG feature do y
479489

480490
</div>
481491

482-
<div id="outline-container-6-5" class="outline-3">
483-
<h3 id="sec-6-5"><span class="section-number-3">6.5</span> Is this library thread-safe ?</h3>
484-
<div class="outline-text-3" id="text-6-5">
492+
<div id="outline-container-7-5" class="outline-3">
493+
<h3 id="sec-7-5"><span class="section-number-3">7.5</span> Is this library thread-safe ?</h3>
494+
<div class="outline-text-3" id="text-7-5">
485495

486496
<p> Unfortunately, no. The reason has to do with the ISPC task
487497
implementation. A request for changing this has been filed (
@@ -492,16 +502,16 @@ <h3 id="sec-6-5"><span class="section-number-3">6.5</span> Is this library threa
492502

493503
</div>
494504

495-
<div id="outline-container-7" class="outline-2">
496-
<h2 id="sec-7"><span class="section-number-2">7</span> Code TODOs</h2>
497-
<div class="outline-text-2" id="text-7">
505+
<div id="outline-container-8" class="outline-2">
506+
<h2 id="sec-8"><span class="section-number-2">8</span> Code TODOs</h2>
507+
<div class="outline-text-2" id="text-8">
498508

499509

500510
</div>
501511

502-
<div id="outline-container-7-1" class="outline-3">
503-
<h3 id="sec-7-1"><span class="section-number-3">7.1</span> High priority</h3>
504-
<div class="outline-text-3" id="text-7-1">
512+
<div id="outline-container-8-1" class="outline-3">
513+
<h3 id="sec-8-1"><span class="section-number-3">8.1</span> High priority</h3>
514+
<div class="outline-text-3" id="text-8-1">
505515

506516
<ul>
507517
<li>Better I/O format for Exemplars. This will involve changing the
@@ -514,39 +524,20 @@ <h3 id="sec-7-1"><span class="section-number-3">7.1</span> High priority</h3>
514524

515525
</div>
516526

517-
<div id="outline-container-7-2" class="outline-3">
518-
<h3 id="sec-7-2"><span class="section-number-3">7.2</span> Low priority</h3>
519-
<div class="outline-text-3" id="text-7-2">
527+
<div id="outline-container-8-2" class="outline-3">
528+
<h3 id="sec-8-2"><span class="section-number-3">8.2</span> Low priority</h3>
529+
<div class="outline-text-3" id="text-8-2">
520530

521531
<ul>
522532
<li>Fix dependency issues on GCC and Linux.
523533
</li>
524534
<li>32 bit binary for ISPC ?
525535
</li>
526-
<li><code>paramters-&gt;flipImage</code> to be implemented.
536+
<li><code>parameters-&gt;flipImage</code> to be implemented.
527537
</li>
528538
</ul>
529539

530-
531-
<div id="footnotes">
532-
<h2 class="footnotes">Footnotes: </h2>
533-
<div id="text-footnotes">
534-
<p class="footnote"><sup><a class="footnum" name="fn.1" href="#fnr.1">1</a></sup> <a href="https://github.com/abhi2610/exemplarsvm">https://github.com/abhi2610/exemplarsvm</a>
535-
</p>
536-
537-
<p class="footnote"><sup><a class="footnum" name="fn.2" href="#fnr.2">2</a></sup> <a href="http://ispc.github.com/">http://ispc.github.com/</a>
538-
</p>
539-
540-
<p class="footnote"><sup><a class="footnum" name="fn.3" href="#fnr.3">3</a></sup> HOG and
541-
Spatial Convolution on SIMD Architecture - Ishan Misra, Abhinav
542-
Shrivastava, Martial Hebert. CMU Tech Report XXXX (2013)
543-
</p>
544-
545-
<p class="footnote"><sup><a class="footnum" name="fn.4" href="#fnr.4">4</a></sup> <a href="https://github.com/imisra/esvmTestCPP">https://github.com/imisra/esvmTestCPP</a>
546-
</p></div>
547540
</div>
548-
</div>
549-
550541
</div>
551542
</div>
552543
</div>

‎README.org

+21-18
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,19 @@
77
Version: 0.1 alpha^{2}
88
Project Page: https://github.com/imisra/esvmTestCPP
99

10-
* Introduction
10+
* Tech Report
11+
The details and aim of this project can be found in our tech
12+
report. Please cite it if you use this code for any purpose. The
13+
code can be downloaded freely from our [[https://github.com/imisra/esvmTestCPP][github project page]].
14+
15+
Ishan Misra, Abhinav Shrivastava, Martial Hebert - "/HOG and Spatial
16+
Convolution on SIMD Architecture/" CMU Tech Report XXXX (2013)
1117

12-
=esvmTestCPP= is an implementation of the MATLAB Exemplar
13-
SVM[fn::https://github.com/abhi2610/exemplarsvm] testing pipeline
14-
written in =C++=. Computationally intensive parts were written using
15-
ISPC [fn::http://ispc.github.com/] for SIMD performance.
18+
* Introduction
1619

17-
If you use this code, please cite our tech-report [fn::HOG and
18-
Spatial Convolution on SIMD Architecture - Ishan Misra, Abhinav
19-
Shrivastava, Martial Hebert. CMU Tech Report XXXX (2013)]. The code
20-
can be downloaded freely from github [fn::https://github.com/imisra/esvmTestCPP].
20+
=esvmTestCPP= is an implementation of the MATLAB [[https://github.com/abhi2610/exemplarsvm][Exemplar-SVM]]
21+
testing pipeline written in =C++=. Computationally intensive parts
22+
were written using [[http://ispc.github.com/][ISPC]] for SIMD performance.
2123

2224
One may also use this code just for computing HOG features or
2325
performing spatial-convolution (without anything to do with Exemplar
@@ -71,7 +73,7 @@ Project Page: https://github.com/imisra/esvmTestCPP
7173
#tree -d
7274
##+end_src
7375

74-
#+begin_example
76+
#+BEGIN_EXAMPLE
7577
.
7678
├── common: ISPC 64-bit Linux binary and internal files (Task system)
7779
├── demos: contains demo files for HOG, Exemplar testing.
@@ -83,7 +85,7 @@ Project Page: https://github.com/imisra/esvmTestCPP
8385
└── exemplar-txt-files
8486

8587
8 directories
86-
#+end_example
88+
#+END_EXAMPLE
8789

8890
* Getting Started
8991
** Input format for Exemplars
@@ -187,14 +189,14 @@ Project Page: https://github.com/imisra/esvmTestCPP
187189
"/Object detection with discriminatively trained part based models/",
188190
PAMI 2010
189191

190-
It is different from the HOG popularized by the "Pedestrian detection"
192+
It is different from the HOG popularized by the "Pedestrian detection"
191193
application from Navneet Dalal's paper (N. Dalal and B. Triggs,
192194
"/Histograms of oriented gradients for human detection/", CVPR
193195
2005).
194196

195-
This latest reincarnation of the HOG feature is generally considered
196-
to be more discriminative than the earlier versions, for object
197-
detection tasks.
197+
This latest reincarnation of the HOG feature is generally
198+
considered to be more discriminative than the earlier versions,
199+
for object detection tasks.
198200

199201
** Is this library thread-safe ?
200202
Unfortunately, no. The reason has to do with the ISPC task
@@ -207,6 +209,7 @@ It is different from the HOG popularized by the "Pedestrian detection"
207209
=read/write= functions in MATLAB and C++. No changes expected in the
208210
API. I need feedback from users as to what they would like!
209211
** Low priority
210-
- Fix dependency issues on GCC and Linux.
211-
- 32 bit binary for ISPC ?
212-
- =paramters->flipImage= to be implemented.
212+
- Fix dependency issues on GCC and Linux. The =__expect= macros, and
213+
=memalign= calls need to be changed.
214+
- Include a 32 bit binary for ISPC ?
215+
- =parameters->flipImage= to be implemented.

0 commit comments

Comments
 (0)
Please sign in to comment.