惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cisco Blogs
Cyberwarzone
Cyberwarzone
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
SecWiki News
SecWiki News
Martin Fowler
Martin Fowler
T
Tor Project blog
N
Netflix TechBlog - Medium
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
V
Visual Studio Blog
GbyAI
GbyAI
PCI Perspectives
PCI Perspectives
D
DataBreaches.Net
Jina AI
Jina AI
H
Heimdal Security Blog
云风的 BLOG
云风的 BLOG
P
Privacy International News Feed
A
About on SuperTechFans
J
Java Code Geeks
美团技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
News | PayPal Newsroom
有赞技术团队
有赞技术团队
MyScale Blog
MyScale Blog
博客园 - 司徒正美
C
Check Point Blog
T
Threat Research - Cisco Blogs
Attack and Defense Labs
Attack and Defense Labs
宝玉的分享
宝玉的分享
AI
AI
Simon Willison's Weblog
Simon Willison's Weblog
C
Cyber Attacks, Cyber Crime and Cyber Security
I
Intezer
P
Proofpoint News Feed
Blog — PlanetScale
Blog — PlanetScale
Apple Machine Learning Research
Apple Machine Learning Research
Hugging Face - Blog
Hugging Face - Blog
The Last Watchdog
The Last Watchdog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Vercel News
Vercel News
I
InfoQ
阮一峰的网络日志
阮一峰的网络日志
Cisco Talos Blog
Cisco Talos Blog
W
WeLiveSecurity
Hacker News: Ask HN
Hacker News: Ask HN
Recent Commits to openclaw:main
Recent Commits to openclaw:main
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
Docker
博客园 - Franky
Security Archives - TechRepublic
Security Archives - TechRepublic

Hacker News

Introducing Claude Opus 4.7 Qwen Studio The Future of Everything is Lies, I Guess: Where Do We Go From Here? GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Unexpected €54k billing spike in 13 hours: Firebase browser key without API restrictions used for Gemini requests Retrofitting JIT Compilers into C Interpreters IPv6 – Google The Accursèd Alphabetical Clock Cybersecurity Looks Like Proof of Work Now Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent When moving fast, talking is the first thing to break Too much Discussion of the XOR swap trick – Heather Cafe Introduction to Spherical Harmonics for Graphics Programmers The Grand Line Building a Z-Machine in the worst possible language High-Level Rust: Getting 80% of the Benefits with 20% of the Pain GitHub - duguyue100/midnight-captain: Inspired by Midnight Commander, tailored to my taste. How to build a `git diff` driver · Jamie Tanna | Software Engineer Center for Responsible, Decentralized Intelligence at Berkeley The Local Universe’s Expansion Rate Is Clearer Than Ever, but Still Doesn’t Add Up - A new synthesis of astronomical measurements confirms a persistent mismatch that could point to physics beyond current models The air throughout our homes is infused with microplastics. But there are things you can do to breathe less of them The disturbing white paper Red Hat is trying to erase from the internet – OSnews The Future of Everything is Lies, I Guess: Annoyances ‘Abhorrent’: the inside story of the Polymarket gamblers betting millions on war Productive procrastination — Max van IJsselmuiden maps, territory and LMs 447 Terabytes per Square Centimetre at Zero Retention Energy: Non-Volatile Memory at the Atomic Scale on Fluorographane Show HN: Pardonned.com – A searchable database of US Pardons 20 Years on AWS and Never Not My Job The Seasons are Wrong Artemis II crew splashes down near San Diego after historic moon mission We gave an AI a 3 year retail lease in SF and asked it to make a profit | Andon Labs How a dancer with ALS used brainwaves to perform live On filing the corners off my MacBooks Installing every* Firefox extension OpenClaw’s memory is unreliable, and you don’t know when it will break Steve Blank Nowhere Is Safe Chimpanzees in Uganda locked in vicious 'civil war', say researchers watgo - a WebAssembly Toolkit for Go linux/Documentation/process/coding-assistants.rst at master · torvalds/linux GitHub - callumlocke/json-formatter: Makes JSON easy to read. Founding Product Engineer at Bild AI | Y Combinator A compelling title that is cryptic enough to get you to take action on it GitHub - Keychron/Keychron-Keyboards-Hardware-Design: Industrial design files for Keychron keyboards and mice. 100+ models with CAD assets in STEP, DXF, DWG, and PDF. Source-available, with commercial use allowed for original compatible accessories within the license terms. [ANNOUNCE] WireGuardNT v0.11 and WireGuard for Windows v0.6 Released 1D-Chess Helium Is Hard to Replace Cooperative Vectors Introduction | Evolve Keeping a Postgres queue healthy — PlanetScale Our response to the Axios developer tool compromise Do Americans read print books, e-books or audiobooks more? The Zettelkasten Method in Obsidian: A Practical Setup Guide Artemis II Is Competency Porn and We Are Starving For It WeakC4 Flight Viz — Cockpit View A Mexican surveillance giant you’ve never heard of is now watching the U.S. border Surelock: Deadlock-Free Mutexes for Rust RISC-V 101 – what is it and what does it mean for Canonical? | Ubuntu The Problem That Built an Industry How Much Linear Memory Access Is Enough? | Solidean Investigating Split Locks on x86-64 Simplest hash functions Sybilproof reputation mechanisms (2005) [pdf] What is a property? How Complex is my Code? Static code analysis in Kotlin — tools overview Toffoli gates are all you need PGLite evangelism dcmake: a new CMake debugger UI Clojure on Fennel part one: Persistent Data Structures Fragments: April 2 Python Release Python install manager 26.1 The Life and Death of the Book Review - Liberties Introducing Database Traffic Control — PlanetScale Bitcoin miners are losing $19,000 on every BTC produced as difficulty drops 7.8% God sleeps in the minerals Building slogbox Apple Silicon and Virtual Machines: Beating the 2 VM Limit Who was “Not Even Wrong” first? Pokemon Evolution Vs Darwinian Evolution The APL Programming Language Source Code
GitHub - alebal123bal/khadas_yolov8n_multithread: Real-time YOLOv8n UAV detection at the sensor's 46 FPS ceiling, in ~140 MB of RAM
alebal123bal · 2026-06-14 · via Hacker News

Real-time YOLOv8n UAV detection running on the RK3588S NPU

Real-time YOLOv8n UAV detection at the sensor's 46 FPS ceiling, in ~140 MB of RAM. A high-throughput, low-footprint computer-vision pipeline for the Rockchip RK3588S SoC: it captures live 1080p MIPI frames, runs YOLOv8n across all 3 NPU cores in parallel (lifting throughput from ~31 to 46 FPS — the camera, not the pipeline, is now the limit), and streams the annotated result to HDMI or RTSP. Capture, color-convert/resize and inference run entirely on fixed-function silicon (ISP, RGA, NPU), so the CPU stays free and memory holds flat at ~140 MB per stream — small enough to run on even the cheapest 2 GB RK3588S boards, not just high-end dev kits. Targets any RK3588S board; built and tested on the Khadas Edge2.

Then it goes a step further: when a tracked UAV leaves the scene, an on-device LLM (Qwen2.5-0.5B, on the same NPU) writes a natural-language assessment of what just happened. The whole thing is a chain of small, independent processes connected by Unix-domain sockets — detections flow downstream into multi-object tracking, temporal-feature extraction, a presence FSM, and the on-demand LLM summary.

Highlights

  • Saturates the sensor: 3-thread NPU inference lifts throughput from ~31 FPS to the 46 FPS camera ceiling — the pipeline is no longer the bottleneck.
  • Fully hardware-accelerated: capture (ISP), color-convert/resize (RGA), and inference (NPU) never touch the CPU, giving a flat ~140 MB RSS per stream.
  • Runs on any RK3588S board: because the footprint is so small (~140 MB for one stream, ~290 MB for two), it fits comfortably on the cheapest RK3588S boards on the market — even 2 GB models that sell for as little as ~€90 — not just high-end dev kits.
  • Two cameras at once: independent per-device sockets let two streams run and be controlled side by side.
  • Composable pipeline: detection → ByteTrack → temporal features → presence FSM → on-demand LLM summary, each a separate process.
  • NPU hand-off for the LLM: a blackout/resume control plane frees the whole NPU so the LLM runs at full speed, then hands it back to the cameras.

Target hardware: any RK3588S-based board, aarch64 Linux, with an OS08A10 MIPI camera. Developed and tested on the Khadas Edge2. Cross-compiles from x86-64/WSL or builds natively on the board.

For the full software architecture (Mermaid diagrams of the internal pipeline and the multi-process topology) see docs/architecture.md; for launch commands see docs/usage.md.

Related repositories

  • RKNN_TRAIN_YOLO — the entire pipeline for training, converting, and exporting the YOLO model into the Rockchip NPU .rknn format used here.
  • RKLLM_LLAMA_QWEN — the entire pipeline for running optimized LLM models on the RK3588S, either on the NPU (RKLLM) or the CPU (llama).

Performance

A 3-thread inference pool runs one RKNN context per NPU core (rknn_dup_context + rknn_set_core_mask), pipelining capture, inference, and display across all three cores. At 1080p with YOLOv8n 640×640 this lifts throughput from ~31.2 FPS (naïve single-threaded loop) to the 46 FPS OS08A10 camera ceiling — the pipeline is no longer the bottleneck, the sensor is. Full per-model FPS, latency, and CPU/NPU/RAM numbers are in docs/benchmarks.md.


Fully hardware-accelerated → tiny RAM footprint

Every heavy per-frame operation runs on a dedicated fixed-function block of the RK3588S (camera ISP, RGA, NPU), never on the CPU — so there are no large intermediate framebuffers or scratch tensors CPU-side. A fixed pool of pre-allocated buffers (N_BUF, see BufPool in src/main.cc) is recycled instead of allocating per frame, so memory stays flat and bounded: ~137–152 MB RSS for one 1080p stream, ~276–304 MB for two (and that double-counts the shared librknnrt.so / librga.so pages).

Because the NPU, ISP and RGA are identical across the whole RK3588S range, the same binary runs at full speed on the cheapest 2 GB boards (~€90) — no 8/16 GB dev kit required. See docs/architecture.md for the per-frame offload table and pipeline diagram.


Build & deploy

Native (on the board):

cd yolov8n_cap_multithread
bash build.sh

Cross-compile (WSL / x86-64 Linux):

# one-time setup
sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
bash setup_sdk.sh          # fetches librga v1.10.5_[8] + librknnrt v2.3.2

cd yolov8n_cap_multithread
bash build.sh              # uses toolchain-aarch64.cmake (aarch64-linux-gnu-g++)
scp -r install/yolov8n_cap_multithread/ khadas@<board-ip>:~/programs/

Run: ./yolov8n_cap_multithread <rknn model> <device number> <rtsp port | hdmi>

See docs/usage.md for launch commands, and docs/usage_advanced.md for the IPC control/data plane, the downstream tracking/temporal/LLM stages, and RTSP streaming setup.


Repository structure

yolov8n_cap_multithread/
├── CMakeLists.txt              # builds main pipeline + all auxiliary processes
├── build.sh                    # convenience wrapper around CMake
├── toolchain-aarch64.cmake     # cross-compile toolchain (WSL / x86 → aarch64)
├── data/
│   ├── coco_1_labels_list.txt
│   └── model/                  # .rknn model files
│
├── include/                    # YOLO pipeline headers
│   ├── camera_util.h
│   ├── drm_func.h
│   ├── local_display.h         # HDMI output via DRM / Wayland
│   ├── model_utils.h
│   ├── postprocess.h           # YOLOv8 decode + NMS
│   ├── rga_func.h              # Rockchip RGA color-space conversion / resize
│   ├── rtsp_stream.h           # GStreamer RTSP publisher
│   └── ipc/                    # shared IPC layer (control + data planes)
│       ├── bounded_queue.h     # drop-oldest queue used by all publishers
│       ├── i_control_server.h
│       ├── i_data_publisher.h
│       ├── messages.h          # in-process DetectionMessage type
│       ├── unix_control_server.h
│       ├── unix_data_publisher.h
│       ├── wire_protocol.h     # ALL on-the-wire structs + socket paths
│       └── yolo_control_state.h
│
├── src/                        # YOLO pipeline implementation
│   ├── main.cc                 # multi-threaded RKNN pipeline (3 NPU cores)
│   ├── camera_util.cc
│   ├── local_display.cc
│   ├── model_utils.cc
│   ├── postprocess.cc
│   ├── rga_func.cc
│   ├── rtsp_stream.cc
│   └── ipc/
│       ├── unix_control_server.cc      # JSON control plane over AF_UNIX
│       └── unix_data_publisher.cc      # binary detection stream over AF_UNIX
│
├── tracker/                    # ByteTrack stage (separate process)
│   ├── include/
│   │   └── bytetrack_adapter.h         # IByteTracker interface
│   └── src/
│       ├── bytetrack_service.cc        # main() — reads data, writes tracks
│       └── iou_tracker.cc              # default IOU-greedy implementation
│
├── temporal/                   # Temporal-features stage (separate process)
│   ├── include/
│   │   ├── track_state.h               # per-track history + feature math
│   │   └── track_manager.h             # lifecycle + per-frame orchestration
│   └── src/
│       ├── temporal_service.cc         # main() — reads tracks, writes events
│       ├── track_state.cc
│       └── track_manager.cc
│
├── tools/                      # Standalone client / debug binaries
│   ├── control_client.cc       # send pause/resume/blackout/status commands
│   ├── data_receiver.cc        # consume raw detections   (yolo_data socket)
│   ├── tracks_receiver.cc      # consume tracked dets     (yolo_tracks socket)
│   ├── events_receiver.cc      # consume temporal events  (yolo_events socket)
│   └── event_summarizer.cc     # presence FSM + on-demand LLM (production sink)
│
├── utility_board_scripts/      # board-side helpers (deployed to install tree)
│   └── run_qwen.sh             # feeds a snapshot to Qwen2.5-0.5B via llm_demo
│
├── build/                      # CMake out-of-source build tree
└── install/                    # `make install` deploy tree (scp this to board)
    └── yolov8n_cap_multithread/
        ├── yolov8n_cap_multithread
        ├── bytetrack_service
        ├── temporal_service
        ├── control_client
        ├── data_receiver
        ├── tracks_receiver
        ├── events_receiver
        ├── event_summarizer
        ├── data/                       # models + labels
        ├── utility_board_scripts/      # run_qwen.sh
        └── lib/                        # librknnrt.so, librga.so

Process topology

Each stage is an independent OS process; they communicate via per-device Unix-domain sockets (<device> = V4L2 device number, e.g. 33). The full software architecture — the internal main.cc pipeline and the multi-process topology, both as Mermaid diagrams — is documented in docs/architecture.md.


License & disclaimer

Licensed under the Apache License 2.0 — see LICENSE.

This is an independent, personal project built for educational and research purposes only. It is not affiliated with or endorsed by any employer or client of the author, and is not intended for production, operational, safety-critical, surveillance, or defense use. The "UAV" class is only a sample detection target for benchmarking the inference pipeline. The software is provided "AS IS", without warranty of any kind, and you are solely responsible for complying with all applicable export-control and other regulations. See DISCLAIMER.md for the full text.