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

Segmentation #58

Open
wants to merge 32 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
2459521
A preview is now displayed when sharing screenshots.
john-rocky Jul 25, 2024
f57698f
Auto-format by https://ultralytics.com/actions
UltralyticsAssistant Jul 25, 2024
7d5be5a
Merge branch 'main' into screenshotPreview
john-rocky Jul 25, 2024
c354bfe
Merge branch 'main' into screenshotPreview
ambitious-octopus Aug 1, 2024
4d7474d
Merge branch 'main' into screenshotPreview
glenn-jocher Aug 11, 2024
2ffd15f
Update format.yml
glenn-jocher Aug 11, 2024
83a14e8
Auto-format by https://ultralytics.com/actions
UltralyticsAssistant Aug 11, 2024
01e5b8b
Merge remote-tracking branch 'upstream/main'
john-rocky Aug 18, 2024
e9a28cf
add seg.
john-rocky Aug 18, 2024
0487f30
add seg models
john-rocky Aug 18, 2024
222cc2a
Update project.pbxproj
john-rocky Aug 18, 2024
72e6bff
Update format.yml
john-rocky Aug 18, 2024
2084c8e
Auto-format by https://ultralytics.com/actions
UltralyticsAssistant Aug 18, 2024
0d37cf5
Update Colors.swift
john-rocky Aug 18, 2024
4e3ba79
Update ViewController.swift
john-rocky Aug 18, 2024
d6aff8b
Update README.md
john-rocky Aug 18, 2024
ae2084b
Auto-format by https://ultralytics.com/actions
UltralyticsAssistant Aug 18, 2024
e22799e
Update README.md
john-rocky Aug 18, 2024
859d051
Auto-format by https://ultralytics.com/actions
UltralyticsAssistant Aug 18, 2024
ee1fe71
Update YOLO/Models/README.md
john-rocky Aug 21, 2024
ea0c214
Update project.pbxproj
john-rocky Aug 21, 2024
85f2d82
Update YOLO.xcodeproj/project.pbxproj
ambitious-octopus Aug 22, 2024
4f3f747
Update YOLO.xcodeproj/project.pbxproj
ambitious-octopus Aug 22, 2024
255f24b
Update YOLO.xcodeproj/project.pbxproj
ambitious-octopus Aug 22, 2024
d19022b
Update YOLO.xcodeproj/project.pbxproj
ambitious-octopus Aug 22, 2024
8d1f376
Update YOLO.xcodeproj/project.pbxproj
ambitious-octopus Aug 22, 2024
f75aaee
Update project.pbxproj
ambitious-octopus Aug 22, 2024
4663aaa
Merge branch 'main' into seg
ambitious-octopus Aug 26, 2024
4a12a8e
Swap the order of post-processing results
john-rocky Aug 30, 2024
d3ab1db
Add comment to Colors.swift
john-rocky Aug 30, 2024
c2eba59
adjust comment
john-rocky Aug 30, 2024
1f3b950
Merge branch 'main' into seg
ambitious-octopus Sep 6, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 38 additions & 9 deletions YOLO.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,24 @@
636EFCAF21E62DD300DE43BC /* VideoCapture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 636EFCA221E62DD300DE43BC /* VideoCapture.swift */; };
636EFCB321E62DD300DE43BC /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 636EFCA721E62DD300DE43BC /* AppDelegate.swift */; };
636EFCB921E62E3900DE43BC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 636EFCB821E62E3900DE43BC /* Assets.xcassets */; };
6381D2182B7817C200ABA4E8 /* yolov8l.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 6381D2132B7817C200ABA4E8 /* yolov8l.mlpackage */; };
6381D2192B7817C200ABA4E8 /* yolov8x.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 6381D2142B7817C200ABA4E8 /* yolov8x.mlpackage */; };
6381D21A2B7817C200ABA4E8 /* yolov8s.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 6381D2152B7817C200ABA4E8 /* yolov8s.mlpackage */; };
6381D21B2B7817C200ABA4E8 /* yolov8m.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 6381D2162B7817C200ABA4E8 /* yolov8m.mlpackage */; };
6381D21C2B7817C200ABA4E8 /* yolov8n.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 6381D2172B7817C200ABA4E8 /* yolov8n.mlpackage */; };
6381D2182B7817C200ABA4E8 /* yolov8l.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 6381D2132B7817C200ABA4E8 /* yolov8l.mlpackage */; };
ambitious-octopus marked this conversation as resolved.
Show resolved Hide resolved
6381D2192B7817C200ABA4E8 /* yolov8x.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 6381D2142B7817C200ABA4E8 /* yolov8x.mlpackage */; };
ambitious-octopus marked this conversation as resolved.
Show resolved Hide resolved
6381D21A2B7817C200ABA4E8 /* yolov8s.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 6381D2152B7817C200ABA4E8 /* yolov8s.mlpackage */; };
ambitious-octopus marked this conversation as resolved.
Show resolved Hide resolved
6381D21B2B7817C200ABA4E8 /* yolov8m.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 6381D2162B7817C200ABA4E8 /* yolov8m.mlpackage */; };
ambitious-octopus marked this conversation as resolved.
Show resolved Hide resolved
6381D21C2B7817C200ABA4E8 /* yolov8n.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 6381D2172B7817C200ABA4E8 /* yolov8n.mlpackage */; };
ambitious-octopus marked this conversation as resolved.
Show resolved Hide resolved
63CF371F2514455300E2DEA1 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6323C44D22186177008AE681 /* LaunchScreen.storyboard */; };
63CF37202514455300E2DEA1 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6323C44F22186177008AE681 /* Main.storyboard */; };
63CF37212514455300E2DEA1 /* ultralytics_yolo_logotype.png in Resources */ = {isa = PBXBuildFile; fileRef = 6323C45122186177008AE681 /* ultralytics_yolo_logotype.png */; };
733310CD2C71BEB0001D647B /* yolov8x-seg.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 733310C82C71BEAB001D647B /* yolov8x-seg.mlpackage */; };
733310CE2C71BEB0001D647B /* yolov8n-seg.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 733310C92C71BEAC001D647B /* yolov8n-seg.mlpackage */; };
733310CF2C71BEB0001D647B /* yolov8m-seg.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 733310CA2C71BEAD001D647B /* yolov8m-seg.mlpackage */; };
733310D02C71BEB0001D647B /* yolov8s-seg.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 733310CB2C71BEAE001D647B /* yolov8s-seg.mlpackage */; };
733310D12C71BEB0001D647B /* yolov8l-seg.mlpackage in Sources */ = {isa = PBXBuildFile; fileRef = 733310CC2C71BEB0001D647B /* yolov8l-seg.mlpackage */; };
733310D42C71C5CE001D647B /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 733310D22C71C5CE001D647B /* Colors.swift */; };
733310D52C71C5CE001D647B /* PostProcessSegment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 733310D32C71C5CE001D647B /* PostProcessSegment.swift */; };
8EDAA33950796844333D60A7 /* BoundingBoxView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EDAA633C1F2B50286D16008 /* BoundingBoxView.swift */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
6323C44D22186177008AE681 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
6323C44F22186177008AE681 /* Main.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = "<group>"; };
Expand All @@ -40,6 +48,13 @@
6381D2162B7817C200ABA4E8 /* yolov8m.mlpackage */ = {isa = PBXFileReference; lastKnownFileType = folder.mlpackage; path = yolov8m.mlpackage; sourceTree = "<group>"; };
6381D2172B7817C200ABA4E8 /* yolov8n.mlpackage */ = {isa = PBXFileReference; lastKnownFileType = folder.mlpackage; path = yolov8n.mlpackage; sourceTree = "<group>"; };
63B8B0A821E62A890026FBC3 /* .gitignore */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = .gitignore; sourceTree = "<group>"; };
733310C82C71BEAB001D647B /* yolov8x-seg.mlpackage */ = {isa = PBXFileReference; lastKnownFileType = folder.mlpackage; path = "yolov8x-seg.mlpackage"; sourceTree = "<group>"; };
733310C92C71BEAC001D647B /* yolov8n-seg.mlpackage */ = {isa = PBXFileReference; lastKnownFileType = folder.mlpackage; path = "yolov8n-seg.mlpackage"; sourceTree = "<group>"; };
733310CA2C71BEAD001D647B /* yolov8m-seg.mlpackage */ = {isa = PBXFileReference; lastKnownFileType = folder.mlpackage; path = "yolov8m-seg.mlpackage"; sourceTree = "<group>"; };
733310CB2C71BEAE001D647B /* yolov8s-seg.mlpackage */ = {isa = PBXFileReference; lastKnownFileType = folder.mlpackage; path = "yolov8s-seg.mlpackage"; sourceTree = "<group>"; };
733310CC2C71BEB0001D647B /* yolov8l-seg.mlpackage */ = {isa = PBXFileReference; lastKnownFileType = folder.mlpackage; path = "yolov8l-seg.mlpackage"; sourceTree = "<group>"; };
733310D22C71C5CE001D647B /* Colors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Colors.swift; sourceTree = "<group>"; };
733310D32C71C5CE001D647B /* PostProcessSegment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostProcessSegment.swift; sourceTree = "<group>"; };
7BCB411721C3096100BFC4D0 /* YOLO.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = YOLO.app; sourceTree = BUILT_PRODUCTS_DIR; };
8EDAA633C1F2B50286D16008 /* BoundingBoxView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BoundingBoxView.swift; sourceTree = "<group>"; };
8EDAAA4507D2D23D7FAB827F /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
Expand All @@ -61,6 +76,8 @@
children = (
636166E9251443B20054FA7E /* ThresholdProvider.swift */,
8EDAA633C1F2B50286D16008 /* BoundingBoxView.swift */,
733310D32C71C5CE001D647B /* PostProcessSegment.swift */,
733310D22C71C5CE001D647B /* Colors.swift */,
);
path = Utilities;
sourceTree = "<group>";
Expand Down Expand Up @@ -91,6 +108,11 @@
6381D2172B7817C200ABA4E8 /* yolov8n.mlpackage */,
6381D2152B7817C200ABA4E8 /* yolov8s.mlpackage */,
6381D2142B7817C200ABA4E8 /* yolov8x.mlpackage */,
733310CC2C71BEB0001D647B /* yolov8l-seg.mlpackage */,
733310CA2C71BEAD001D647B /* yolov8m-seg.mlpackage */,
733310C92C71BEAC001D647B /* yolov8n-seg.mlpackage */,
733310CB2C71BEAE001D647B /* yolov8s-seg.mlpackage */,
733310C82C71BEAB001D647B /* yolov8x-seg.mlpackage */,
);
path = Models;
sourceTree = "<group>";
Expand Down Expand Up @@ -209,13 +231,20 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6381D21B2B7817C200ABA4E8 /* yolov8m.mlpackage in Sources */,
6381D21C2B7817C200ABA4E8 /* yolov8n.mlpackage in Sources */,
636EFCAF21E62DD300DE43BC /* VideoCapture.swift in Sources */,
636166EA251443B20054FA7E /* ThresholdProvider.swift in Sources */,
6381D2182B7817C200ABA4E8 /* yolov8l.mlpackage in Sources */,
6381D21A2B7817C200ABA4E8 /* yolov8s.mlpackage in Sources */,
6381D21B2B7817C200ABA4E8 /* yolov8m.mlpackage in Sources */,
6381D2182B7817C200ABA4E8 /* yolov8l.mlpackage in Sources */,
6381D2192B7817C200ABA4E8 /* yolov8x.mlpackage in Sources */,
733310CE2C71BEB0001D647B /* yolov8n-seg.mlpackage in Sources */,
733310D02C71BEB0001D647B /* yolov8s-seg.mlpackage in Sources */,
733310CF2C71BEB0001D647B /* yolov8m-seg.mlpackage in Sources */,
733310D12C71BEB0001D647B /* yolov8l-seg.mlpackage in Sources */,
733310CD2C71BEB0001D647B /* yolov8x-seg.mlpackage in Sources */,
733310D52C71C5CE001D647B /* PostProcessSegment.swift in Sources */,
636EFCAF21E62DD300DE43BC /* VideoCapture.swift in Sources */,
733310D42C71C5CE001D647B /* Colors.swift in Sources */,
636166EA251443B20054FA7E /* ThresholdProvider.swift in Sources */,
636EFCB321E62DD300DE43BC /* AppDelegate.swift in Sources */,
636EFCAA21E62DD300DE43BC /* ViewController.swift in Sources */,
8EDAA33950796844333D60A7 /* BoundingBoxView.swift in Sources */,
Expand Down
18 changes: 15 additions & 3 deletions YOLO/Main.storyboard
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@
<rect key="frame" x="178" y="405" width="37" height="37"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
</activityIndicatorView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" insetsLayoutMarginsFromSafeArea="NO" text="1.00x" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vlL-Ye-WgQ" userLabel="zoom">
<rect key="frame" x="166" y="736" width="60" height="20"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" insetsLayoutMarginsFromSafeArea="NO" text="1.00x" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vlL-Ye-WgQ" userLabel="zoom">
<rect key="frame" x="176.66666666666666" y="736" width="40" height="20"/>
<accessibility key="accessibilityConfiguration">
<accessibilityTraits key="traits" staticText="YES" updatesFrequently="YES"/>
</accessibility>
Expand Down Expand Up @@ -139,7 +139,7 @@
</connections>
</slider>
<toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" horizontalHuggingPriority="1" verticalHuggingPriority="1" insetsLayoutMarginsFromSafeArea="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3Rg-UC-ogI">
<rect key="frame" x="0.0" y="787" width="393" height="44"/>
<rect key="frame" x="0.0" y="782" width="393" height="49"/>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="24" id="wAH-Ui-IPj"/>
Expand Down Expand Up @@ -229,6 +229,16 @@
<color key="textColor" systemColor="groupTableViewBackgroundColor"/>
<nil key="highlightedColor"/>
</label>
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="BbV-RI-qx8">
<rect key="frame" x="267" y="171" width="121" height="32"/>
<segments>
<segment title="Detect"/>
<segment title="Seg"/>
</segments>
<connections>
<action selector="taskSegmentControlChanged:" destination="BYZ-38-t0r" eventType="valueChanged" id="iTM-XR-4Wt"/>
</connections>
</segmentedControl>
</subviews>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
Expand All @@ -239,6 +249,7 @@
<constraint firstItem="mCE-j4-QAA" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leading" id="2Hf-C7-PKF"/>
<constraint firstItem="tZo-QP-q2z" firstAttribute="top" secondItem="Gax-hR-qdY" secondAttribute="bottom" constant="1" id="3qP-Re-vUy"/>
<constraint firstItem="Hif-Vv-5nn" firstAttribute="top" secondItem="6Tk-OE-BBY" secondAttribute="top" id="4VU-KS-qnX"/>
<constraint firstItem="6Tk-OE-BBY" firstAttribute="trailing" secondItem="BbV-RI-qx8" secondAttribute="trailing" constant="5" id="5wx-2K-np3"/>
<constraint firstItem="uD3-7n-e7T" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="6" id="8ED-Ty-itL"/>
<constraint firstItem="ewl-Fj-awn" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="5" id="CCH-hl-rSK"/>
<constraint firstItem="9cm-Nq-b3N" firstAttribute="top" secondItem="Hif-Vv-5nn" secondAttribute="bottom" constant="9" id="CsQ-eU-xjO"/>
Expand All @@ -263,6 +274,7 @@
<constraint firstItem="mCE-j4-QAA" firstAttribute="top" secondItem="8bC-Xf-vdC" secondAttribute="top" id="fJk-bN-O88"/>
<constraint firstItem="Ytf-30-5R8" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="8" id="fio-88-KON"/>
<constraint firstItem="3Rg-UC-ogI" firstAttribute="bottom" secondItem="8bC-Xf-vdC" secondAttribute="bottom" constant="-21" id="gd1-rI-r2l"/>
<constraint firstItem="BbV-RI-qx8" firstAttribute="centerY" secondItem="Ytf-30-5R8" secondAttribute="centerY" id="giv-9H-E32"/>
<constraint firstItem="q4C-U4-wS4" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="5" id="hDd-mh-Ihd"/>
<constraint firstItem="ewl-Fj-awn" firstAttribute="top" secondItem="uD3-7n-e7T" secondAttribute="bottom" constant="4" id="iOx-Xn-wjC"/>
<constraint firstItem="tZo-QP-q2z" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="6" id="lkb-bl-PkB"/>
Expand Down
15 changes: 8 additions & 7 deletions YOLO/Models/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,16 @@ If you prefer to use specific model versions or need to customize the models, yo
pip install ultralytics
```

2. **Export Models:** Use the following Python script to export YOLOv8 models to the CoreML format, optimized for INT8 quantization for better performance on iOS devices. The script exports all YOLOv8 model sizes (`n`, `s`, `m`, `l`, `x`) as CoreML models.
2. **Export Models:** Use the following Python script to export YOLOv8 models to the CoreML format, optimized for INT8 quantization for better performance on iOS devices. The script exports all YOLOv8 model sizes (n, s, m, l, x) as CoreML models for both instance segmentation and object detection.

```python
from ultralytics import YOLO
```python
from ultralytics import YOLO

# Export all YOLOv8 models to CoreML INT8
for size in ("n", "s", "m", "l", "x"): # all YOLOv8 model sizes
YOLO(f"yolov8{size}.pt").export(format="coreml", int8=True, nms=True, imgsz=[640, 384])
```
# Export all YOLOv8 models to CoreML INT8
for size in ("n", "s", "m", "l", "x"): # all YOLOv8 model sizes
YOLO(f"yolov8{size}.pt").export(format="coreml", int8=True, nms=True, imgsz=[640, 384])
YOLO(f"yolov8{size}-seg.pt").export(format="coreml", int8=True, imgsz=[640, 384])
```

3. **Place Models in Project:** After exporting, locate the CoreML model files and place them in the `YOLO/Models` directory of your project.

Expand Down
25 changes: 25 additions & 0 deletions YOLO/Utilities/Colors.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import Foundation
import UIKit

let ultralyticsColorsolors: [UIColor] = [
UIColor(red: 4 / 255, green: 42 / 255, blue: 255 / 255, alpha: 0.6), // #042AFF
UIColor(red: 11 / 255, green: 219 / 255, blue: 235 / 255, alpha: 0.6), // #0BDBEB
UIColor(red: 243 / 255, green: 243 / 255, blue: 243 / 255, alpha: 0.6), // #F3F3F3
UIColor(red: 0 / 255, green: 223 / 255, blue: 183 / 255, alpha: 0.6), // #00DFB7
UIColor(red: 17 / 255, green: 31 / 255, blue: 104 / 255, alpha: 0.6), // #111F68
UIColor(red: 255 / 255, green: 111 / 255, blue: 221 / 255, alpha: 0.6), // #FF6FDD
UIColor(red: 255 / 255, green: 68 / 255, blue: 79 / 255, alpha: 0.6), // #FF444F
UIColor(red: 204 / 255, green: 237 / 255, blue: 0 / 255, alpha: 0.6), // #CCED00
UIColor(red: 0 / 255, green: 243 / 255, blue: 68 / 255, alpha: 0.6), // #00F344
UIColor(red: 189 / 255, green: 0 / 255, blue: 255 / 255, alpha: 0.6), // #BD00FF
UIColor(red: 0 / 255, green: 180 / 255, blue: 255 / 255, alpha: 0.6), // #00B4FF
UIColor(red: 221 / 255, green: 0 / 255, blue: 186 / 255, alpha: 0.6), // #DD00BA
UIColor(red: 0 / 255, green: 255 / 255, blue: 255 / 255, alpha: 0.6), // #00FFFF
UIColor(red: 38 / 255, green: 192 / 255, blue: 0 / 255, alpha: 0.6), // #26C000
UIColor(red: 1 / 255, green: 255 / 255, blue: 179 / 255, alpha: 0.6), // #01FFB3
UIColor(red: 125 / 255, green: 36 / 255, blue: 255 / 255, alpha: 0.6), // #7D24FF
UIColor(red: 123 / 255, green: 0 / 255, blue: 104 / 255, alpha: 0.6), // #7B0068
UIColor(red: 255 / 255, green: 27 / 255, blue: 108 / 255, alpha: 0.6), // #FF1B6C
UIColor(red: 252 / 255, green: 109 / 255, blue: 47 / 255, alpha: 0.6), // #FC6D2F
UIColor(red: 162 / 255, green: 255 / 255, blue: 11 / 255, alpha: 0.6), // #A2FF0B
]
Loading
Loading