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

Update README #77

Closed
wants to merge 14 commits into from
Closed

Update README #77

wants to merge 14 commits into from

Conversation

john-rocky
Copy link
Contributor

@john-rocky john-rocky commented Jan 14, 2025

πŸ› οΈ PR Summary

Made with ❀️ by Ultralytics Actions

WARNING ⚠️ this PR is very large, summary may not cover all changes.

🌟 Summary

This massive pull request introduces a Swift Package for YOLO models, multiple example iOS apps, and an improved project structure for leveraging YOLO object detection in iOS apps.


πŸ“Š Key Changes

  • Swift Package for YOLO:

    • Simplified Swift Package named YOLO to integrate YOLO models easily into iOS/macOS apps.
    • Functions for image-based inference and real-time detection using CoreML models.
    • Supports object detection with bounding boxes, classes, and confidence levels.
  • Example Apps Added:

    • YOLO-RealTime-SwiftUI: Demonstrates real-time object detection using SwiftUI and YOLO.
    • YOLO-RealTime-UIKit: Real-time detection using a UIKit-based approach.
    • YOLO-Single-Image-SwiftUI/YOLO-Single-Image-UIKit: Apps for single-image input detection using either SwiftUI or UIKit.
  • YOLO-iOS-App Updates:

    • Enhanced app leveraging YOLO's power with real-time detection.
    • Supports model drag-and-drop for easy user customization.
  • Core Components in YOLO Swift Package:

    • ObjectDetector for VNCoreML-based predictions.
    • YOLOResult for providing detection data such as bounding boxes and annotated images.
    • Example-friendly API with support for SwiftUI and UIKit rendering views.
    • YOLOCamera supports real-time object detection.
  • Improved Build Structure:

    • Introduces structured Swift Package modularity.
    • Adds a standalone Package.swift for YOLO, enabling third-party integration.

🎯 Purpose & Impact

  • Simplified Integration 🌟:
    The YOLO Swift Package enables developers to easily integrate YOLO-model-based object detection into their projects. A single line of code starts detection!

  • Multi-Platform Support πŸ“±πŸ’»:
    The library works on iOS, iPadOS, and macOS with support for both SwiftUI and UIKit approaches.

  • Out-of-the-Box Examples πŸ—οΈ:
    The four different example apps provide starting points for developers to utilize YOLO on single images or with real-time analysis.

  • Adoptable & Extensible πŸ”§:
    Users can directly test their custom models with drag-and-drop functionality or extend the package for more advanced use cases. This enables rapid prototyping and development.

In summary, this update modernizes YOLO's integration into Apple ecosystems (iOS/macOS), making it more modular, developer-friendly, and extensible. πŸš€

Signed-off-by: MLBoy_DaisukeMajima <[email protected]>
Signed-off-by: MLBoy_DaisukeMajima <[email protected]>
Signed-off-by: MLBoy_DaisukeMajima <[email protected]>
Signed-off-by: MLBoy_DaisukeMajima <[email protected]>
Signed-off-by: MLBoy_DaisukeMajima <[email protected]>
Signed-off-by: MLBoy_DaisukeMajima <[email protected]>
Signed-off-by: MLBoy_DaisukeMajima <[email protected]>
Signed-off-by: MLBoy_DaisukeMajima <[email protected]>
Signed-off-by: MLBoy_DaisukeMajima <[email protected]>
Signed-off-by: MLBoy_DaisukeMajima <[email protected]>
@john-rocky john-rocky closed this Jan 14, 2025
@UltralyticsAssistant UltralyticsAssistant added detect Object Detection issues, PR's embedded Pertaining to IOT or low-power devices enhancement New feature or request labels Jan 14, 2025
@UltralyticsAssistant
Copy link
Member

πŸ‘‹ Hello @john-rocky, thank you for submitting an ultralytics/yolo-ios-app πŸš€ PR! To ensure a seamless review and integration of your work, please review the following checklist:

  • βœ… Purpose Clarity: Ensure the purpose of your update is well-defined in your PR description. This includes linking to any related issues and providing a clear summary of the changes introduced, as you've done in your detailed PR description. Great work on this so far! 🌟
  • βœ… Sync with Main: Confirm your PR branch is synchronized with the main branch of the repository. If not, please update your branch by using the 'Update branch' button or running git pull and git merge main locally.
  • βœ… Pass CI Checks: Verify that all Continuous Integration (CI) checks have passed. Any failing checks need to be addressed before merging.
  • βœ… Documentation Updates: Update the documentation if your PR introduces or modifies any functionality. This would help other contributors and users understand the new features or updates.
  • βœ… Test Coverage: Add or modify tests as appropriate to ensure all new features and bug fixes are properly verified. This includes integration, unit, and UI tests, if applicable.
  • βœ… Sign the CLA: If this is your first contribution to Ultralytics, ensure you've signed our Contributor License Agreement (CLA) by commenting "I have read the CLA Document and I sign the CLA" in this thread.
  • βœ… Minimize Changes: Keep changes limited to the minimum necessary to implement the feature or fix, as you’ve done here. Your updates, particularly introducing the Swift Package and modular design, demonstrate this principle excellently. πŸš€

Additional Notes:

  • Incorporating example apps such as YOLO-RealTime-SwiftUI and modular improvements via the YOLO Swift Package is very impressive and aligns closely with community and developer usability needs. Adding real-time object detection examples is a step forward for empowering developers in the Apple ecosystem! πŸŽ‰
  • Please ensure that any added resources, such as YOLOCamera, meet the project guidelines and deliver seamless integration with the existing YOLO workflows. πŸ™Œ

For a comprehensive view of our standards and guidelines, please refer to the Contributing Guide. If you have any questions or need clarification, feel free to askβ€”an Ultralytics engineer will assist you promptly. 😊

Your contributions to ultralytics/yolo-ios-app are greatly appreciated, and we’re excited to see this enhancement in action! πŸš€

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
detect Object Detection issues, PR's embedded Pertaining to IOT or low-power devices enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants