Skip to content

Commit 74c1908

Browse files
Added new network files from libCCV
1 parent adbf9cb commit 74c1908

File tree

15 files changed

+32
-9
lines changed

15 files changed

+32
-9
lines changed

LICENSE

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,10 @@ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
2222
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2323
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
2424
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25+
26+
Third-party data:
27+
28+
The ccv2010.ntwk and ccv2012.ntwk network models were converted from files
29+
created as part of the [LibCCV project](http://libccv.org/) and are licensed under
30+
the Creative Commons Attribution 4.0 International License. To view a copy of this
31+
license, visit http://creativecommons.org/licenses/by/4.0/.

LinuxLibrary/libjpcnn.so

453 KB
Binary file not shown.
464 Bytes
Binary file not shown.

README.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,13 @@ The classification is run on that image, and the found labels are printed out.
385385
If you're doing a lot of work with OpenCV, the most crucial part for you is probably the conversion of the image objects between the two systems.
386386
That's defined in deepbeliefopencv.cpp in the `Image::Image(const cv::Mat& image)` constructor, and [the section on using OpenCV](#using-with-opencv) covers what's going on in the actual code.
387387

388+
## Networks
389+
390+
There are currently three pre-built models available in the networks folder.
391+
jetpac.ntwk is the in-house model used here at Jetpac, and it's licensed under the same BSD conditions as the rest of the project. It has a few oddities, like only 999 labels (a file truncation problem I discovered too late during training) but has served us well and is a good place to start.
392+
393+
The excellent [libccv](http://libccv.org) project also made a couple of networks available under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/). I've converted them over into a binary format, and they're in the networks folder as ccv2010.ntwk and ccv2012.ntwk. You should be able to substitute these in anywhere you'd use jetpac.ntwk. The 2012 file has very similar labels to our original, and the 2010 is an older architecture. You may notice slightly slower performance, the arrangement of the layers is a bit different (in technical terms the local-response normalization happens before the max-pooling in these models, which is more expensive since there's more data to normalize), but the accuracy of the 2012 model especially is good. One common technique in the academic world is to take multiple models and merge their votes for higher accuracy, so one application of the multiple models might be improved accuracy.
394+
388395
## API Reference
389396

390397
Because we reuse the same code across a lot of different platforms, we use a
@@ -395,8 +402,8 @@ leaks. Input images are created from raw arrays of 8-bit RGB data, you can see h
395402
to build those from iOS types by searching for `jpcnn_create_image_buffer()` in the
396403
sample code.
397404

398-
The API is broken up into two sections. The first gives you access to a pre-trained neural network, currently the example jetpac.ntwk file is the only one available.
399-
This has been trained on 1,000 Imagenet categories, and the output will give you a decent general idea of what's in an image.
405+
The API is broken up into two sections. The first gives you access to one of the pre-trained neural networks you'll find in the networks folder.
406+
These have been trained on 1,000 Imagenet categories, and the output will give you a decent general idea of what's in an image.
400407

401408
The second section lets you replace the highest layer of the neural network with your own classification step.
402409
This means you can use it to recognize the objects you care about more accurately.
@@ -570,25 +577,27 @@ Given the output from a pre-trained neural network, and a custom prediction mode
570577

571578
### Is this available for platforms other than iOS, Android, OS X, and Linux x86-64?
572579

573-
Not right now. I hope to make it available on other devices like the Raspberry Pi in the future. I recommend checking out [Caffe](https://github.com/BVLC/caffe) and [OverFeat](http://cilvr.nyu.edu/doku.php?id=software:overfeat:start) if you're on the desktop too, they're great packages.
580+
Not right now. I hope to make it available on other devices like the Raspberry Pi in the future. I recommend checking out [Caffe](https://github.com/BVLC/caffe), [OverFeat](http://cilvr.nyu.edu/doku.php?id=software:overfeat:start) and [libCCV](http://libccv.org) if you're on the desktop too, they're great packages.
574581

575582
### Is the source available?
576583

577584
Not at the moment. The compiled library and the neural network parameter set are freely reusable in your own apps under the BSD license though.
578585

579586
### Can I train my own networks?
580587

581-
There aren't any standard formats for sharing large neural networks unfortunately, so there's no way to import other CNNs into the app. The [custom training](https://github.com/jetpacapp/DeepBeliefSDK/wiki/How-to-recognize-custom-objects) should help you apply the included pre-trained network to your own problems to a large extent though.
588+
There aren't any standard formats for sharing large neural networks unfortunately, so there's no easy way to import other CNNs into the app. The [custom training](https://github.com/jetpacapp/DeepBeliefSDK/wiki/How-to-recognize-custom-objects) should help you apply the included pre-trained network to your own problems to a large extent though.
582589

583590
## More Information
584591

585592
Join the [Deep Belief Developers email list](https://groups.google.com/group/deep-belief-developers) to find out more about the practical details of implementing deep learning.
586593

587594
## License
588595

589-
The binary framework and network parameter file are under the BSD three-clause
596+
The binary framework and jetpac.ntwk network parameter file are under the BSD three-clause
590597
license, included in this folder as LICENSE.
591598

599+
The ccv2010.ntwk and ccv2012.ntwk network models were converted from files created as part of the [LibCCV project](http://libccv.org/) and are licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit [http://creativecommons.org/licenses/by/4.0/](http://creativecommons.org/licenses/by/4.0/).
600+
592601
## Credits
593602

594603
Big thanks go to:

0 commit comments

Comments
 (0)