Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Human #22

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open

Human #22

wants to merge 9 commits into from

Conversation

john-rocky
Copy link
Contributor

@john-rocky john-rocky commented May 21, 2024

I opened a PR for the human branch on YOLO-iOS-app.
Added Human mode to draw a human box in the camera stream, along with weight, height, age, gender, and race.
yolov8m / Runs at 30fps on iPhone13 pro.

I am writing post-processing including NMS in Swift.
This is because human features could not be acquired using CoreML's preset NMS.
By writing post-processing in Swift like this, we can also integrate segments and poses into your app in the future. Post-processing speed is less than 0.01 seconds on iPhone13pro.

I've integrated it as closely as possible to the original app implementation.
Therefore, it will not start unless the models of all sizes n, s, m, l, x of detect and human are bundled (original specification).

If you tell us about the app's user interface, integration code, etc., I will fix it right away.

If we are going to integrate segments and poses from now on, it may be better to create a struct of the detection results.

🛠️ PR Summary

Made with ❤️ by Ultralytics Actions

🌟 Summary

Significant improvements added to the Ultralytics YOLO iOS App for enhanced object detection and human feature analysis 🚀.

📊 Key Changes

  • 🔥 Introduced PostProcessing.swift for advanced output processing of YOLOv8 model detections.
  • 🧠 Added support for human feature analysis from model outputs, including weight, height, age, gender, and race.
  • 🎨 UI enhancements for a better user experience, including added segmented control for toggling between 'Detect' and 'Human' tasks.
  • ✂️ Removed initialization of several model package files (yolov8*.mlpackage) to streamline the app setup.

🎯 Purpose & Impact

  • 🚀 Enhance detection quality by implementing post-processing steps that filter and format model predictions.
  • 👤 Provide users with deeper insights on detected humans, such as physical attributes and demographic features, for applications requiring rich contextual information.
  • 🌈 Improve UI flexibility, allowing users to easily switch between general object detection and in-depth human analysis.
  • 🧹 Simplify app configuration and reduce initial setup time, making the app more accessible to new users.

The changes aim to broaden the app's utility for a variety of use cases, from general object detection to specific applications requiring detailed analysis of human subjects in images.

Copy link
Member

@ambitious-octopus ambitious-octopus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @john-rocky, thank you for the PR. Since to test the app you need the models exported to coreml. Here you find all detection models including YOLO-human exported to coreml with and without nms.

@glenn-jocher
Copy link
Member

@john-rocky FYI I merged the share button bug fix PR #23 which created a conflict here in this PR now.

@john-rocky
Copy link
Contributor Author

@glenn-jocher
I resolved the conflict.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants