update c++ complication rules
This commit is contained in:
parent
3fd719e30d
commit
ae39851162
8 changed files with 166 additions and 15 deletions
|
|
@ -0,0 +1,72 @@
|
|||
## Demo Run
|
||||
|
||||
### CPP
|
||||
|
||||
#### 1. Compile
|
||||
|
||||
**Prerequisites:**
|
||||
- Android NDK (r25e recommended)
|
||||
- `ANDROID_NDK_PATH` environment variable set
|
||||
|
||||
**Build:**
|
||||
```bash
|
||||
# Build for arm64-v8a
|
||||
cd examples/yoloworld/cpp
|
||||
./build-android.sh -a arm64-v8a
|
||||
```
|
||||
|
||||
The executable will be generated at `build/android/yolo_world_demo` (Note: executable name may vary, verify in build folder).
|
||||
|
||||
#### 2. Run
|
||||
|
||||
```bash
|
||||
# Push executable to device
|
||||
adb push build/android/yolo_world_demo /data/local/tmp/
|
||||
adb push model/yoloworld_int8_A311D2.adla /data/local/tmp/
|
||||
adb push test_image.jpg /data/local/tmp/
|
||||
|
||||
# Run on device
|
||||
adb shell
|
||||
cd /data/local/tmp
|
||||
chmod +x yolo_world_demo
|
||||
export LD_LIBRARY_PATH=/vendor/lib64 or (/vendor/lib)
|
||||
|
||||
# Usage: ./yolo_world_demo <model_path> <image_path>
|
||||
./yolo_world_demo yoloworld_int8_A311D2.adla test_image.jpg
|
||||
```
|
||||
|
||||
**Note:** Replace `yoloworld_int8_A311D2.adla` with your actual model file path.
|
||||
|
||||
### Python
|
||||
|
||||
**Prerequisites:**
|
||||
- Python 3.10
|
||||
- Required packages: `numpy`, `opencv-python`, `amlnnlite`
|
||||
|
||||
**Install dependencies:**
|
||||
```bash
|
||||
pip install numpy opencv-python amlnnlite-1.0.0-cp310-cp310-linux_aarch64.whl
|
||||
```
|
||||
|
||||
**Run on device:**
|
||||
```bash
|
||||
# Basic usage (process current directory)
|
||||
python yoloworld.py --model-path ./yoloworld_int8_A311D2.adla
|
||||
|
||||
# Specify image directory
|
||||
python yoloworld.py --model-path ./yoloworld_int8_A311D2.adla --image-dir ./
|
||||
```
|
||||
|
||||
The script will automatically process all image files (`.jpg`, `.jpeg`, `.png`, `.bmp`) in the specified directory and save results to a `{model_name}_result` folder.
|
||||
|
||||
## Results
|
||||
|
||||
The program will print the detection count and detected objects for each processed image. The result image with bounding boxes will be saved to the specified output directory.
|
||||
|
||||
You can pull the result image back to view it:
|
||||
```bash
|
||||
adb pull result.jpg.
|
||||
```
|
||||

|
||||
|
||||
The program detects objects from predefined classes (handbag, backpack, wallet, watch, necklace, bracelet, earrings, finger ring, sunglass, hat, shoes, belt, makeup palette, lipstick tube, car, truck, bicycle, motorcycle, phone, laptop, camera, wine bottle, stuffed toy) and draws bounding boxes with class labels on the result images.
|
||||
|
|
@ -456,7 +456,7 @@ Examples:
|
|||
conf_threshold=args.conf_threshold,
|
||||
iou_threshold=args.nms_threshold,
|
||||
num_classes=NUM_CLASSES,
|
||||
reverse=1 # YOLOWorld format
|
||||
reverse=1
|
||||
)
|
||||
|
||||
# Print detection results
|
||||
|
|
@ -469,11 +469,7 @@ Examples:
|
|||
print(" No objects detected")
|
||||
|
||||
# Save result image
|
||||
model_name = Path(args.model_path).stem
|
||||
result_dir = f"{model_name}_result"
|
||||
os.makedirs(result_dir, exist_ok=True)
|
||||
img_name = Path(image_path).stem
|
||||
save_path = os.path.join(result_dir, f"{img_name}_result.jpg")
|
||||
save_path = "result.jpg"
|
||||
draw_detections(original_img, detections, str(save_path))
|
||||
print(f" Result saved to: {save_path}")
|
||||
|
||||
|
|
@ -481,7 +477,6 @@ Examples:
|
|||
print(f"Error processing {os.path.basename(image_path)}: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
# Continue processing other images
|
||||
continue
|
||||
|
||||
print()
|
||||
|
|
|
|||
BIN
examples/yoloworld/result.jpg
Executable file
BIN
examples/yoloworld/result.jpg
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 521 KiB |
Loading…
Add table
Add a link
Reference in a new issue