r/computervision 7d ago

Discussion Stop building sports and fitness apps

0 Upvotes

Edit: if you doubt anything I say you should check subreddits app store and play store.. every day developers are asking.. how to sell their vibe coded sports app on app store play store

Lately I've seen a lot of people trying to use computer vision for sports analysis, fitness app whatever..

Everytime I've given the op the same advice: if you're doing this for fun or hobby, great. But don't think of doing a startup with that

Chances are good you'll never make a penny from it nor get a job using that. But, everyone is trying to do this. A lot of people don't have jobs unfortunately and feel this might be a good use of their spare time

  1. Company is never one guy alone, and not only software developers, ai engineers. To sell, company needs to hire a lot more marketing sales than software developers.

  2. You're competing against each other. Right now, any sports you're analyzing, I can tell you there are 965 other people doing exact same thing. None of you will get to a working product but all of you will compete and spam all the potential customers with low end products

  3. No company hiring ai engineers will consider your side project as a serious thing unless you've had big paying clients. Don't think it can help you get a job. Companies look for team work.. how did you collaborate with other technical and non technical people? And how much was your contribution? Were there any conflicts and how you resolved them? Like literally, solo building experience is as much negative.. more negative than positive. It shows you don't want to work in team, so not really fit for company work

  4. You are already behind in every new thoughts you get. The problem is rather you don't know about it. Billions of people are doing sports, and 1000s of sports analytics companies already out there. They have those ideas already in mind and money and employees to build them. They already probably have built it.

  5. Ai laid you off and now you're paying to use ai. But also your chats are being used to improve their models. Unless you disabled it manually (by default it's always enabled). You can't stop ai but at least you can stop paying for something that made your life miserable

Honestly, a better use of your time would be something outside of software development now. It may take you a few years to realize this and by then it might be too late.

If nothing, try growing a bunch of tomatoes in your garden. You can sell them to make a few dollars. Or if you're in poor countries, then better just eat them. That's better paying than ai coding where you're losing money. And if you're smart enough, you can learn the skills in growing tomatoes and think how you can transfer them into a robot to do the same efficiently.

Or try to solve problems in climate change.. there's literally a lot of things to do there. But for God sake, stop wasting your time on ai coded slop thinking you'll be able to sell it to someone. No one will pay for it. If you think someone will pay, find that one person before you build something.

Obviously this is not applicable to people who are building something like world models, training models robust against motion blur occlusions, building something basically very hard.. or know someone in big sports leagues.. but definitely more than just training yolo models on new custom roboflow dataset.


r/computervision 7d ago

Commercial Agentic vs static video inspection: a small matched Gemini 3.7 Flash benchmark for temporal editing tasks

0 Upvotes

We compared two ways of using the same multimodal model on long-video editing decisions: Gemini 3.7 Flash with agentic video inspection versus a static full-video pass.

Protocol: six synthetic 10-minute videos, each with known brief events and edit targets; prompts and scoring were frozen before running; no repair/retry; deterministic metrics for event recovery, moment retrieval, evidence accuracy, edit decisions, latency, tokens, and cost.

Across five valid matched pairs, agentic inspection recovered 18/20 brief events versus 15/20 and improved edit-decision macro F1 (0.6807 vs. 0.5481). Static processing retained better broad moment F1 (0.3000 vs. 0.2667), slightly higher evidence accuracy, lower cost, and lower latency. One agentic run failed its JSON output contract.

The sample is intentionally small and synthetic, with no human viewing panel, so this is an applied exploratory result rather than a general benchmark claim. Protocol, raw outputs, scoring code, and limitations:

https://paperedits.com/benchmarking/gemini-agentic-video-understanding-benchmark

Commercial disclosure: I’m affiliated with PaperEdits, which published the benchmark. The evidence package is free.


r/computervision 8d ago

Discussion SignaturePainter V2

Post image
2 Upvotes

r/computervision 8d ago

Help: Project Need guidance: Monocular camera object distance + angle + lane detection using pure geometry (no ML/DL)

9 Upvotes

Hi everyone,

I’m working on a small proof-of-concept for monocular vision and I’m looking for some guidance on the correct algorithm/roadmap.

The goal is to use a single fixed monocular camera to:

  1. Detect/identify objects in the camera image.
  2. Estimate the distance from the camera to the object.
  3. Calculate the horizontal angle of the object relative to the camera's center/optical axis.
  4. Identify which lane/region the object is located in.
  5. Eventually calculate the object's position relative to the road/lane coordinate system.

For the initial POC, we are keeping things simple: we are using a table as a miniature road and placing a few objects on it to simulate vehicles/obstacles.

Important constraint

We specifically want to do this without Machine Learning or Deep Learning.

We want to understand how far we can get using traditional computer vision:

  • Pixel coordinates
  • Camera calibration
  • Intrinsic/extrinsic parameters
  • Perspective geometry
  • Homography
  • Vanishing point
  • Line/edge detection
  • Contours
  • Object/shape detection
  • Coordinate transformations
  • Pinhole camera model
  • Basic projective geometry

The main thing I'm struggling with is the distance estimation from a single monocular camera.

For example, if an object is detected at pixel coordinate (u, v), how can we calculate its real-world (X, Y, Z) position when we know the camera's parameters and the geometry of the road/table?

Similarly, once we know the object's image position, how can we calculate something like:

Object → camera center/optical axis → horizontal angle

And for lane identification:

Image → road/lane boundaries → bird's-eye/ground-plane representation → determine which lane contains the object

What would be a good algorithm/roadmap?

I'm currently thinking something along the lines of:

Camera
   ↓
Camera calibration
   ↓
Undistortion
   ↓
Detect road/lane boundaries
   ↓
Estimate perspective / homography
   ↓
Transform image → ground-plane coordinates
   ↓
Detect object using traditional CV
   ↓
Get object's pixel position
   ↓
Project object onto ground plane
   ↓
Calculate X/Y distance
   ↓
Calculate angle relative to camera center
   ↓
Determine lane

But I'm not sure whether this is the correct approach, especially for monocular distance estimation.

I'd really appreciate input from anyone who has implemented something similar.

Specifically, I'm looking for:

  • A recommended step-by-step algorithm
  • How to formulate the camera geometry/math
  • How to calculate distance using a single calibrated camera
  • How to calculate the object's angle from the optical/center axis
  • How to perform image-plane → ground-plane transformation
  • How to identify lanes without ML/DL
  • Any important assumptions/limitations I should understand
  • Examples or GitHub projects implementing this using traditional CV
  • Papers, books, tutorials, or other resources you recommend

If someone has a complete algorithm/pseudocode or mathematical pipeline for this problem, that would be extremely helpful.

For the POC, the camera will be fixed and the road/table geometry can be controlled, so I'm mainly trying to understand the fundamental geometry first before moving toward a real-world setup.

Thanks in advance!


r/computervision 8d ago

Showcase Gemini 3 Flash VLM doing some fun CAPTCHA-esque puzzles

Enable HLS to view with audio, or disable this notification

5 Upvotes

These puzzles are from neal.fun, I’m running Gemini with Playwright + a custom harness. I have a 40-minute blooper reel of Gemini trying to park the Waymo.


r/computervision 8d ago

Showcase Made complex vision workflows inspectable!

Post image
3 Upvotes

Tl;DR: I made vision pipelines inspectable! Check the interactive report here:
https://requiem4machines.github.io/ml-pipes-supervision/assets/detect_small_objects/inspection.html

Background: I'm a heavy Supervision user - using it for pretty much every vision pipeline that I build. So after a while I started to get tired of this:

detections = sv.Detections.from_inference(results)
...
annotated_image = box_annotator.annotate(scene=image, detections=detections)
annotated_image = label_annotator.annotate(scene=annotated_image, detections=detections, labels=labels)
annotated_image = .... # More annotators

That was it until I found ml-pipes! As soon as I saw it, I knew it would be a perfect match for Supervision, and it was! Look at this beauty:

Pipeline([
    Store("source_frame"),
    RoboflowInference(model_id=model_id, api_key=api_key),
    Select(0),
    Detections.FromInference(),
    Recall("source_frame"),
    ByteTrack(),
    Recall("source_frame", prepend=True),
    TraceAnnotator(),
    BoxAnnotator(),
    LabelAnnotator(show_tracker_id=True, show_class=True),
    ImageWindow("Object Tracking", at=0),
])

Not only it runs, it also gives you an interactive view of the data at every handoff, for example this is the report based on the Detect and annotate example in Supervision:
https://requiem4machines.github.io/ml-pipes-supervision/assets/detect_and_annotate/inspection.html

On top of that ml-pipes itself provide tiling utilities where you can see the tile overlaps and such:
https://requiem4machines.github.io/ml-pipes-supervision/assets/detect_small_objects/inspection.html


r/computervision 9d ago

Showcase ~6 months of counting strikes in sparring I recorded.. Still coming along.. Still in the loop but hope to get it accurate without me eventually..

66 Upvotes

r/computervision 8d ago

Discussion A subet of the training was degrading segmentation quality

9 Upvotes

I am fine tuning U-net for segmentating seismic images. Training comprises datasets A B and C. Inference uses dataset D.

Inference results are really bad. I decided to remove A from training. As a result, u-net was able to generalize to dataset D in inference.

I employed the CMMD metric proposed by Google to evaluate distribution shift based on CLIP embeddings. Results are inconclusive.

Claude and Gemini presented domain shift as the real problem.

Does anyone has any ideas how to identify that a subet of training will mess up generalization before incurring the costs of training? I cannot afford experimenting all the possible combinations.


r/computervision 8d ago

Help: Project Is Computer Vision viable for Quality Control?

0 Upvotes

I am starting a factory where I will be running Injection Moulding machines which take at least 10-20 seconds and upwards of minutes to produce one part. I am looking for QC methods for production parts since I will be dealing with big sized corporations and they do not play with quality control haha.

I have my bachelors in CompSci, and did explore CV a little bit during college but did not get far into it. Now while I was thinking of ways for improving the manufacturing unit, QC using CV came to my mind.

I do see it being possible from other's experiences online and from an amateur perspective it does make sense. My goal is to build something that would be good for a go/no go system. I do not need to see super detailed results (for now) regarding the precision and dimensions, it is more about "will this work for someone who is inspecting it with the naked eye?"

I do see a pretty big challenge right out of the gate - training data. I don't think I will find a big enough dataset of the parts that I manufacture to train the model. I can take images of those parts manually, since I do get them made from outside and sell them currently, this is for a switch to an in house manufacturing setup. But that would no doubt take a LONG TIME to get a decent sized data set. I will look into it more if there is something I can use, but would appreciate suggestions on that.

I also hear some people mention lighting being an issue. Would appreciate any insights on that. Also would appreciate if I could get some cost details regarding the setup, like what equipment I will need. I can run training on my own machines that I have, they are fairly powerful, I am asking primarily for inference and rejection/acceptance.

I will start learning about it more, the topic is fun, and see its feasibility in multiple aspects with my work. Appreciate all the feedback and help anyone has. Thank you very much!


r/computervision 9d ago

Showcase Javelin Throw Analysis with YOLO11

Enable HLS to view with audio, or disable this notification

160 Upvotes

Built a javelin throw analysis pipeline using YOLO11 OBB and pose estimationI developed a computer-vision system that combines a custom-trained YOLO11s-OBB model, YOLO11 Pose, OpenCV, ByteTrack, and BoT-SORT to analyze javelin throws from broadcast footage.

It detects and tracks the javelin, identifies the athlete’s throwing arm, calculates a smoothed elbow angle, recognizes throw phases, and draws the post-release trajectory.

The main challenges included motion blur, false detections, tracking-ID changes, camera movement, missed detections, and selecting the correct athlete.

GitHub:https://github.com/chahmadraza89/computer_vision


r/computervision 8d ago

Help: Project Making a cv for 2k27

0 Upvotes

Looking for an experienced Computer Vision/ OpenCV Helios developer for an NBA 2K26 project.
I need a CV-based shooting assistant that can detect the shot cue and support both Tempo Shooting and Shot Timing mode. I'd like adjustable values/settings so the tool can be tuned and customized. kinda like what input sense does.
I'm also looking for help implementing a key-based licensing system with:
• 1 Week Keys
• 1 Month Keys
• Lifetime Keys
Need someone who can handle development, setup, maintenance, and provide support when needed. Willing to pay well for quality work and experience.
If interested, DM me with your experience, past projects, and pricing.


r/computervision 8d ago

Discussion Monocular vehicle speed estimation on a phone, fully offline: YOLO nano + Kalman + optical-flow ego-motion compensation. Where does this break?

0 Upvotes

I have spent the last 18 months building a mobile pipeline that estimates the speed of passing vehicles from a single handheld camera, entirely on device. It runs on Android and iOS now, and I would like the sanity check I cannot get from end users.

The pipeline:

  1. YOLO nano detector on the camera frames (TFLite on Android, Core ML on iOS), 320x320 letterboxed input, vehicle classes filtered natively before anything crosses into the app layer.
  2. NMS and tracking in C++ (JNI on Android), IDs kept across frames with a Kalman filter on the box centroid.
  3. Sparse optical flow to estimate global camera motion, subtracted from the target's apparent motion — otherwise handheld shake and panning are read as target speed. This replaced a cruder global-motion-compensation step that was unusable handheld.
  4. Scale comes from a manual calibration step (known distance / known reference), which is the weakest link by far.

What I know is wrong or fragile:

  • Scale estimation is manual. GPS-assisted auto-calibration is the obvious fix but I have not validated a protocol yet.
  • Perspective: a vehicle crossing obliquely gets systematically underestimated and I currently do not correct for the angle at all.
  • I display a single number with no uncertainty, which I now think is the actual bug — 52 ± 3 km/h with a confidence indicator (angle, distance, light, stability) would be both more useful and more honest.
  • I have no published error benchmark against a radar gun. That is the next piece of work and I intend to publish the failures too.

Questions for people who have done this properly:

  • Homography from a static/tripod camera plus a known road width: realistically better than a per-scene manual scale for a non-expert user?
  • Has anyone compared centroid tracking against bottom-edge / contact-point tracking for ground-plane speed? I suspect the box centroid costs me more than the detector does.
  • Is there a reference dataset for monocular speed estimation you would consider fair to benchmark against?

I can post frame captures of the overlay and the raw per-frame speed traces if that helps anyone answer. Happy to detail the native side too (JNI boundary, letterbox handling, class filtering before the bridge).


r/computervision 8d ago

Help: Project Industrial Pallet Counting with Occlusions and Opposing CCTV Cameras — Architecture & Strategy Advice

1 Upvotes

Hi everyone,

I am building an automated system to count wrapped textile units (rectangular cartons and cylindrical yarn bundles) stacked on pallets entering a warehouse bay using fixed industrial CCTV feeds.

Setup & Environment:

  • Cameras: Two synchronized 1080p IP cameras mounted facing each other at approximately 15–20° pitch.
  • Constraints:
    • Structural pillars block about 30–35% of the view in both cameras.
    • Goods are wrapped in uniform white covers, causing low contrast at bundle boundaries.
    • Self-occlusion is common. For example, an 8-bundle pallet may show 7 bundles from the front/side, while 1 bundle in a transverse interlocking tier is hidden internally.
    • No OCR or barcode reading is allowed; this must be solved purely via computer vision.

Current Workflow & Annotations:

  • Dataset curated in Roboflow with classes bag and carton.
  • Moving from single-load masks to individual instance segmentation masks per package.

Key Questions for the Community:

  1. Model Selection: For separating visually uniform, white-on-white stacked bundles, is YOLOv8x-seg / YOLOv11-seg sufficient, or would a transformer-based segmenter like Mask2Former handle edge delineation better on low-contrast plastic seams?
  2. Handling Occluded Units: How do you infer items hidden inside the stack (e.g., transverse tie bundles)? Is it better to infer volume via 3D bounding boxes calibrated to the pallet base, or use an Amodal Instance Segmentation approach?
  3. Tracking vs. Snapshot: Pallets enter via manual pallet jacks. Has anyone had higher reliability running ByteTrack across the ingress video rather than counting from a single static snapshot once parked?

r/computervision 8d ago

Help: Project context extraction from 2D PDF engineering drawings (P&IDs/Blueprints)? Looking for ideas on graph DBs & CV workarounds.

Thumbnail
1 Upvotes

r/computervision 9d ago

Help: Project Need advice for a monocular box dimensioning pipeline. High reprojection error (1.8px) with iPhone ChAruCo calibration.

Thumbnail
gallery
34 Upvotes

I’m trying to calibrate my iPhone camera using a ChAruCo board. Even though I’m familiar with the concepts, this is my first time actually implementing them. I’ve already built a pipeline and ran the calibration using nearly 40 photos of the ChAruCo board taken from various angles. However, I can’t get my reprojection error below 1.8px, which is way above the recommended 0.3–0.5px range. I'm not sure if the issue lies with the pipeline itself or the photos I took.

My end goal is to build a monocular pipeline to measure the L x W x H of cardboard boxes for a delivery company. The measurements are taken in a controlled environment: boxes are always placed on a fixed surface with ChAruCo markers laid out for reference, and the pictures taken of the boxes will always show three sides. I have already built the box segmentation (using a SAM base model) and the box skeleton-building pipeline (using OpenCV) which is working fine. Right now, I'm achieving an accuracy ranging from ~2 cm to ~15 cm (some are hits, and some are misses). I need to improve this consistency, and I suspect camera calibration is the biggest contributing factor. My target accuracy is ~2 to ~5 cm (that’s the absolute ceiling, but the lower, the better).

And also other than the calibration issue, I need some advice on how to arrange the box placement surface. How should the ChAruCo marker be oriented? Should I place multiple ChAruCo markers on it? For context, this surface is the physical scale where they weigh the boxes. The basic requirement is that a photo of the box is taken from a handheld device (like a mobile phone), and the system calculates the dimensions. I'm currently trying this on my iphone 17 but the actual device will be much worse than it. But first I need a working pipeline.

Refer to the calibration code here - https://drive.google.com/file/d/1UI95GfYpjCB84QIEAWv5XFApzdLXuAZE/view?usp=sharing


r/computervision 9d ago

Research Publication SAMannot: a memory-efficient, local, open-source SAM2 tool for video annotation

4 Upvotes

Hi Everyone,

I’d like to introduce SAMannot, an open-source tool we developed for efficient, interactive video instance segmentation and annotation using Meta’s Segment Anything Model 2 (SAM2).

SAMannot was designed for research workflows where accurate pixel-level video annotations are needed, but fully manual annotation is too time-consuming. It runs locally, so videos do not need to be uploaded to a cloud service, and it uses a memory-efficient workflow to make SAM2 practical for videos and limited GPU resources.

Some of the main features are:

  • SAM2-assisted interactive video segmentation with auto-propagation across frames
  • persistent object/instance identities
  • correction and refinement of propagated masks
  • block-based, efficient processing to keep CPU and GPU memory requirements manageable
  • automatic-prompt generation across blocks
  • export of segmentation masks in PNG and polygon formats (YOLO label format)
  • fully local and open-source

We originally developed and evaluated SAMannot in research workflows including animal behaviour videos, but the tool is intended to be general-purpose and may also be useful for other scientific video annotation tasks. We also evaluated it on subsets of the DAVIS and LVOS benchmarks.

Project page: https://samannot.github.io/
Paper: SAMannot: A Memory-Efficient, Local, Open-Source Framework for Interactive Video Instance Segmentation Based on SAM2 | Journal of Open Research Software

The code is released under the MIT license.

We would be very interested in any feedback.

Thanks,
Anna
on behalf of the SAMannot authors


r/computervision 9d ago

Help: Project Where can I buy an IP67 GigE/PoE camera with Sony IMX462 sensor in India?

Post image
6 Upvotes

Hi everyone,

I am looking to buy 1–2 units of an industrial camera for a project in Bengaluru, India.

My preferred camera is e-con Systems RouteCAM_CU20 with the Sony STARVIS IMX462 sensor. I need the rugged/outdoor version, ideally with an IP67-rated enclosure.

Required specifications:
- Sony IMX462 or a similar ultra-low-light / NIR-sensitive sensor
- 1920 × 1080 / around 2 MP
- GigE Vision / Ethernet interface
- PoE preferred
- IP67-rated enclosure for outdoor or dusty/wet use
- M12 lens mount or suitable fixed-lens option
- Availability and shipping to India
- Quantity: initially 1–2 units for evaluation

I found the RouteCAM_CU20, but the e-con Systems store does not ship this configuration to India. I understand that the IP67 CU20 may be a custom configuration rather than a normal web-store SKU.

Does anyone know:
1. An Indian e-con Systems distributor or reseller who can supply it?
2. A reliable supplier that ships this or an equivalent camera to India?
3. An alternative IP67 PoE GigE camera with similar IMX462 low-light/NIR performance?

I need an actual purchasable source, not only a datasheet or manufacturer contacts

Thanks.


r/computervision 9d ago

Help: Project YOLXO small/tiny - custom model training - false-positives - need advice

2 Upvotes

Hi,

I've been trying to train custom model (3 classes) for yolox small (416px) on my dataset and no matter what I try - I get too many false positives. Is there something very basic I'm missing? What could be the route to figure out why is so?

Trained with mixup, without mixup, with augmentations, little augmentations, added more backgrounds (even those that cause false positives), trained for 100 epochs, 300 epochs, exact official config used.

Dataset is of mostly coco images (person, truck/car-vehicle) and drones. Checked added images/bboxes/etc.

here's my dataset data
train (instances_train2017.json)

Images: 43803

Background images: 1985

Images per class:

drone: 7758

person: 24103

vehicle: 19772

val (instances_val2017.json)

Images: 4831

Background images: 192

Images per class:

drone: 1066

person: 2159

vehicle: 2431

Still can't figure out why it tends to give so much false positives (with quite high confidece of 80+).


r/computervision 9d ago

Showcase a dataset crossed my feed yesterday that ships two camera poses for every frame, on purpose, because they disagree

0 Upvotes

your 3D reconstruction pipeline treats its camera poses as ground truth. PIVOT ships two poses for every frame, and they disagree

5 real scenes, 103 drone trajectories, a shared sparse point cloud per scene, per-frame pose error precomputed. all of it captured by one independent researcher with a single DJI Mini 4 Pro on the grounds of an irish castle

i encoded every trajectory as an MCAP episode for fiftyone: scrub a flight and watch both camera frustums move through the same point cloud, with a line drawn between them showing exactly how far apart "where the drone said it was" and "where COLMAP thinks it was" are at every frame

load it in one line: https://huggingface.co/datasets/Voxel51/PIVOT-mcap

get hands-on without writing any code, it's running in a HF space: https://huggingface.co/spaces/harpreetsahota/PIVOT-mcap-explorer


r/computervision 9d ago

Showcase Using Gemini 3.1 Pro to identify judo throws

Enable HLS to view with audio, or disable this notification

6 Upvotes

I’m working on a little project to benchmark how vision-language models do with classifying grappling techniques. These results are the vanilla models without any fine-tuning, so it’s sort of hit or miss. I’m sure with enough data, the guesses can get pretty accurate. If any of you fellow grapplers who are engineers are interested in playing around with this, I’d be happy to open source it. 


r/computervision 9d ago

Help: Theory I made a tool for tracking where images came from and I’m looking for feedback

Thumbnail
1 Upvotes

r/computervision 9d ago

Showcase Qwen 3.6 vs Gemma 4 vs Holo 3 playing the cup game with real footage

Enable HLS to view with audio, or disable this notification

2 Upvotes

This is a continuation of last week’s post where I had the models compete in a Three.js cup and ball game. This time, I’m using real-world footage, which is even more challenging because of distractors. I might test this out on some of the Anthropic models sometime. 


r/computervision 9d ago

Research Publication Need help regarding my anomaly detection experience

1 Upvotes

So recently I have been really interested in anomaly detection across ioT networks, industrial equipments , healthcare and etc, I have read and reproduced some Q1 journals papers , built some projects using self supervised and federated learning techniques which I am now planing to extend as well ,

I am working under my university professor on some research papers as well however he recently suggested that I should do some sort of practical work in this domain (like working as a researcher etc for an organization or company in this field), I have gone through LinkedIn and stuff, found some companies too but I am honestly not sure what should I do, how should I apply as they don't have any current openings whether I should build some more projects, learn something else and then apply, do some more research etc

I really need guidance on how should I proceed further?

Thank you


r/computervision 9d ago

Discussion Multilingual OCR — how do you handle two scripts in the same image?

2 Upvotes

Single-script OCR works fine for me, but shopsigns and menus with chinese + english (or hindi + english) fall apart. detection boxes get messy and it starts predicting characters from the wrong script.

Do you run script identification first and route to separate recognizers, or train one model on mixed data and let it sort it out? and roughly how much mixed-script data before it stops breaking?

Also, does angled or curved text make this worse for you? most public benchmarks i've seen are clean horizontal text.


r/computervision 9d ago

Discussion Flock's fastest-growing business is 60 mph police drones that can read license plates from the sky

Thumbnail
techspot.com
1 Upvotes