Skip to content

Commit

Permalink
C++ Demo - Image Classification (PPResNet) (#241)
Browse files Browse the repository at this point in the history
* Functional version of C++ demo.

* Improve printout.

* Remove printouts and add README examples

* Add goldfish example

* Add empty space at EOF

* Add empty line at EOF for Python

* Use the shared labels.txt file instead of having the entire list as a variable in the demo.py

* Address PR comments. Revert example and labels

* Use namespaces for brevity

* Follow OpenCV formatting

* Remove LoadLabel() and use a vector of strings instead of having redundant work.
  • Loading branch information
ryan1288 authored Mar 6, 2024
1 parent ef3b465 commit 6929d47
Show file tree
Hide file tree
Showing 4 changed files with 1,183 additions and 3 deletions.
32 changes: 32 additions & 0 deletions models/image_classification_ppresnet/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
cmake_minimum_required(VERSION 3.24)
set(project_name "opencv_zoo_image_classification_ppresnet")

PROJECT (${project_name})

set(OPENCV_VERSION "4.9.0")
set(OPENCV_INSTALLATION_PATH "" CACHE PATH "Where to look for OpenCV installation")
find_package(OpenCV ${OPENCV_VERSION} REQUIRED HINTS ${OPENCV_INSTALLATION_PATH})
# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI

file(GLOB SourceFile
"demo.cpp")
# If the package has been found, several variables will
# be set, you can find the full list with descriptions
# in the OpenCVConfig.cmake file.
# Print some message showing some of them
message(STATUS "OpenCV library status:")
message(STATUS " config: ${OpenCV_DIR}")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")

# Declare the executable target built from your sources
add_executable(${project_name} ${SourceFile})

# Set C++ compilation standard to C++11
set(CMAKE_CXX_STANDARD 11)

# Link your application with OpenCV libraries
target_link_libraries(${project_name} PRIVATE ${OpenCV_LIBS})
22 changes: 21 additions & 1 deletion models/image_classification_ppresnet/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,34 @@ Results of accuracy evaluation with [tools/eval](../../tools/eval).

## Demo

Run the following command to try the demo:
Run the following commands to try the demo:

### Python

```shell
python demo.py --input /path/to/image

# get help regarding various parameters
python demo.py --help
```
### C++

Install latest OpenCV and CMake >= 3.24.0 to get started with:

```shell
# A typical and default installation path of OpenCV is /usr/local
cmake -B build -D OPENCV_INSTALLATION_PATH=/path/to/opencv/installation .
cmake --build build

# detect on an image
./build/opencv_zoo_image_classification_ppresnet -i=/path/to/image

# detect on an image and display top N classes
./build/opencv_zoo_image_classification_ppresnet -i=/path/to/image -k=N

# get help messages
./build/opencv_zoo_image_classification_ppresnet -h
```

## License

Expand Down
Loading

0 comments on commit 6929d47

Please sign in to comment.