pico | minimalistic framework for real-time object detection | Machine Learning library

 by   nenadmarkus C Version: v1000 License: MIT

kandi X-RAY | pico Summary

kandi X-RAY | pico Summary

pico is a C library typically used in Artificial Intelligence, Machine Learning, Deep Learning applications. pico has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

This repository contains the code for real-time face detection. Check out a demo video at to get the better idea. The pico framework is a modifcation of the standard Viola-Jones method. The basic idea is to scan the image with a cascade of binary classifers at all reasonable positions and scales. An image region is classifed as an object of interest if it successfully passes all the members of the cascade. Each binary classifier consists of an ensemble of decision trees with pixel intensity comparisons as binary tests in their internal nodes. This enables the detector to process image regions at very high speed. The details are given in
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              pico has a low active ecosystem.
              It has 571 star(s) with 192 fork(s). There are 60 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 18 open issues and 7 have been closed. On average issues are closed in 81 days. There are 1 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of pico is v1000

            kandi-Quality Quality

              pico has 0 bugs and 0 code smells.

            kandi-Security Security

              pico has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              pico code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              pico is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              pico releases are available to install and integrate.
              Installation instructions are not available. Examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of pico
            Get all kandi verified functions for this library.

            pico Key Features

            No Key Features are available at this moment for pico.

            pico Examples and Code Snippets

            No Code Snippets are available at this moment for pico.

            Community Discussions

            QUESTION

            Reading file would overwrite reserved memory. Failed to load 'hello_world.bin
            Asked 2022-Apr-01 at 19:14

            I have imx7d-pico with Carrier board. This tiny computer was used a lot for Android Things. PDF (datasheet) easily found.

            I stay (during the last two weeks) trying this tutorial: https://github.com/TechNexion/freertos-tn/tree/freertos_1.0.1_imx7d

            ...

            ANSWER

            Answered 2022-Apr-01 at 19:14
            I solved with two changes in device-tree files:
            
            in imx7d.dtsi
            I put status = "okay";
            in rpmsg: rpmsg{
            
            in imx7d-pico-pi-qca-m4.dts
            I put:
            
            reserved-memory {
                    rpmsg_vrings: vrings0@0x8ff00000 {
                        reg = <0x8fff0000 0x10000>;
                        no-map;
                    };
                };
            
            &
            
            &rpmsg{
                memory-region = <&rpmsg_vrings>;
                vdev-nums = <1>;
                reg = <0x9fff0000 0x10000>;
                status = "okay";
            };
            

            Source https://stackoverflow.com/questions/71073386

            QUESTION

            micropython and sys.implementation- different on XIAO SAMD21 and XIAO RP2040
            Asked 2022-Mar-27 at 18:05

            I was working with micropython on a SEEED XIAO (SAMD21) using version 1.18, and wanted to use 'compiled' libraries (.mpy) to conserve space. I had mpy-cross for version 5 which worked okay for me. I also wanted to have floating point so I built a new micropython with that option- from the latest (20220302) github version- and noticed that mpy-cross had updated to version 6. I thought I would check to see which versions of .mpy were used The micropython documentation suggests some code to check the version of .mpy using the sys.implementation object. I noticed a variety of sys.implementation implementations.

            Version 1.18- released by micropython 20220117 on the XIAO SAMD21 gave the following results:

            ...

            ANSWER

            Answered 2022-Mar-27 at 18:05

            If you want to use precompiled/bytecode .mpy files then you will need to Decide to use either bytecode or compile to native code for your mcu platforms.

            For bytecode you will need to distribute a bytecode version that matches the runtime firmware, 1.12-1.18 == 5, next version will increase

            For native code you'll need to distribute versions for each platform that you want to support. An esp32c3 cannot run stm32 native code and vice-versa

            Also the different ports/board will indeed have differences in some of the stdlib APIs. Your code must be robust enough to handle these differences.

            Source https://stackoverflow.com/questions/71330735

            QUESTION

            Install pwa from a component with delay
            Asked 2022-Mar-23 at 19:45

            I have created a v-dialog component that appears when my webapp is loaded and is used to install the PWA:

            ...

            ANSWER

            Answered 2022-Mar-23 at 19:45

            The issue is that you loose correct context for this. You don't pass arrow function to setTimeout, so this will be window or undefined (depending on strict mode). Anyway, you should change your code:

            Source https://stackoverflow.com/questions/70744841

            QUESTION

            Raspberry Pi Pico ImportError: no module named 'machine'
            Asked 2022-Mar-22 at 01:45

            I am running the following blink program on my raspberry pi pico. I am using circuit python.

            ...

            ANSWER

            Answered 2022-Mar-22 at 01:45

            QUESTION

            "mount: /dev/mqueue: must be superuser to use mount" when starting a Yocto Linux system via NFS and TFTP
            Asked 2022-Mar-12 at 09:16

            I followed the guide "Yocto NFS & TFTP boot" from the i.MX knowledge base to make my embedded Linux device run a kernel and a filesystem on my development machine.

            The kernel seems to be correctly loaded via TFTP, but the system doesn't boot up properly and systemd goes into maintenance mode.

            Here's the first error in the log:

            ...

            ANSWER

            Answered 2022-Mar-12 at 09:16

            The message must be superuser to use mount is a hint to a permission problem.

            The Linux system expects most system files to be owned by UID 0 (root), but when reading the NFS filesystem set up in the guide it actually reads UID 1000, or the UID of whoever built the system in the development machine. If I list the contents of ${YOCTO_BUILD_DIR}/tmp/work/${TARGET}-poky-linux-gnueabi/${IMAGE}/1.0-r0/rootfs, I get:

            Source https://stackoverflow.com/questions/71448426

            QUESTION

            Why MOV instruction is replaced by ADD instruction
            Asked 2022-Mar-06 at 23:49

            I have the following instruction: mov r1, r7 in my assembly code but after looking into disassembly, I've found that actual generated code was adds r1, r7, #0

            I checked with ARMv6-M Architecture Reference Manual and I found out that there's MOVS , instruction (A6.7.40) which is different from ADDS.

            While that's not a big issue, I'm still puzzled why assembler replaces code that I wrote by different op-codes. According to the book that I'm reading, all non-jump instructions take 1 cycle (and I'd prefer for assembler to be dumb rather than trying to optimize something for me).

            I'm using Raspberry Pi Pico SDK which uses GNU Assembler, AFAIK.

            All my code is written in helloworld.S, full source code is:

            ...

            ANSWER

            Answered 2022-Mar-06 at 21:36

            Can I suggest that you add:

            Source https://stackoverflow.com/questions/71374202

            QUESTION

            Detecting modifier keys pressed on host computer from circuitpython
            Asked 2022-Mar-01 at 14:53

            I have a Raspberry Pi Pico running CircuitPython. Is it possible for the python code on this board to detect if a modifier key is pressed on the host computer's keyboard when the board is connected to the host over USB?

            My knowledge of USB protocols is limited but it feels like the Pico would need to be listening to data explicitly sent over USB. I don't think that key presses would be sent that way.

            I'd be happy to be proven wrong.

            ...

            ANSWER

            Answered 2022-Mar-01 at 14:53

            I don't think you can do this without installing something on the host computer side to detect when the Pico was connected, check what keys were pressed and communicate with the Pico accordingly.

            If the host computer is Windows then a quick search finds this which uses Windows Management Instrumentation to run Python code when a USB device changes.

            Alternatively, you could attach a hardware button to the Pico and check that button when the Pico detects that it has been connected to a USB host - you appear to have already figured this out.

            Source https://stackoverflow.com/questions/71301157

            QUESTION

            SPDT Switches with a Raspberry Pi Pico
            Asked 2022-Feb-23 at 12:37

            Basically I'm just trying to figure out how an spdt switch would work with a raspberry pi pico. When I search for information on how to interface a switch with a pico, all I get is info on button switches.

            Does the spdt switch act like a closed circuit, constantly providing power to the pin I connect it to?

            Assuming the answer to the question above is "yes", how would I go about telling micropython to do different things based on which pin is receiving power?

            Sorry for the simple questions, I have no experience in the domain of microcontrollers and can't find this info anywhere.

            ...

            ANSWER

            Answered 2022-Feb-23 at 12:37

            A switch -- by itself -- doesn't provide power to anything. All it does is close and open a circuit. You can replace the switch with a wire and connect/disconnect the wire and accomplish the same thing.

            If you had the middle pin of the switch connected to GPIO 2, and the two outer pins wire to Ground and Vcc, you could use the switch to switch the value of the GPIO between logic 0 and logic 1.

            Reading the value would look something like this:

            Source https://stackoverflow.com/questions/71230625

            QUESTION

            device tree ERROR: Unable to parse input tree (syntax error)
            Asked 2022-Feb-16 at 16:34

            I'm correctly generating my image Yocto-hardknott-technexion with this:

            ...

            ANSWER

            Answered 2022-Feb-16 at 16:34

            The solution was to change imx7d-pico-pi-m4.dtb to imx7d-pico-pi-qca-m4.dtb in the Yocto/Hardknott/technexion configuration file called pico-imx7.conf(described in the post)

            Source https://stackoverflow.com/questions/71011872

            QUESTION

            How to get qemu to run an arm thumb binary?
            Asked 2022-Feb-13 at 14:59

            I'm trying to learn the basics of ARM assembly and wrote a fairly simple program to sort an array. I initially assembled it using the armv8-a option and ran the program under qemu while debugging with gdb. This worked fine and the program initialized the array and sorted it as expected.

            Ultimately I would like to be able to write some assembly for my Raspberry Pi Pico, which has an ARM Cortex M0+, which I believe uses the armv6-m option. However, when I change the directive in my code, it compiles fine but behaves strangely in that the program counter increments by 4 after every instruction instead of the 2 that I expect for thumb. This is causing my program to not work correctly. I suspect that qemu is trying to run my code as if it were compiled for the full ARM instruction set instead of thumb, but I'm not sure why this is.

            I am running on Ubuntu Linux 20.04 LTS, using qemu-arm version 4.2.1 (installed from the package manager). Does the qemu-arm executable only run full ARM binaries? If so, is there another qemu package I can install to run a thumb binary?

            Here is my code if it is helpful:

            ...

            ANSWER

            Answered 2022-Jan-28 at 11:26

            There are a couple of concepts to disentangle here:

            (1) Arm vs Thumb : these are two different instruction sets. Most CPUs support both, some support only one. Both are available simultaneously if the CPU supports both. To simplify a little bit, if you jump to an address with the least significant bit set that means "go to Thumb mode", and jumping to an address with that bit clear means "go to Arm mode". (Interworking is a touch more complicated than that, but that's a good initial mental model.) Note that all Arm instructions are 4 bytes long, but Thumb instructions can be either 2 or 4 bytes long.

            (2) A-profile vs M-profile : these are two different families of CPU architecture. M-profile is "microcontrollers"; A-profile is "applications processors", which is "(almost) everything else". M-profile CPUs always support Thumb and only Thumb code. A-profile CPUs support both Arm and Thumb. The Raspberry Pi Pico is a Cortex-M0+, which is M-profile.

            (3) QEMU system emulation vs user-mode emulation : these are two different QEMU executables which run guest code in different ways. The system emulation binary (typically qemu-system-arm) runs "bare metal code", eg an entire OS. The guest code has full control and can handle exceptions, write to hardware devices, etc. The user emulation binary (typically qemu-arm) is for running Linux user-space binaries. Guest code is started in unprivileged mode and has access to the usual Linux system calls. For system emulation, which CPU is being emulated depends on what machine type you select with the -M or --machine option. For user-mode emulation, the default CPU is "A-profile with all supported features enabled" (this is --cpu max).

            You're currently using qemu-arm which means you get user-mode emulation. This should support Thumb binaries, but unless you pass it a --cpu option it will be using an A-profile CPU. I would also suggest using a newer QEMU for M-profile work, because a lot of M-profile CPU bugs have been fixed since version 4.2. I think 4.2 is also too old to have the Cortex-M0 CPU.

            GDB should tell you in the PSR what the T bit is set to -- use that to check whether you're in Thumb mode or Arm mode, rather than looking at how much the PC is incrementing by.

            There's currently no QEMU system emulation of the Raspberry Pi Pico (though somebody has been doing some experimental work on one). If your assembly is just basic "working with registers and a bit of memory" you can do that with the user-mode emulator. Or you can try the 'microbit' machine model, which is a Cortex-M0 board -- if you're not doing things that are specific to the Pi Pico that might be good enough.

            Source https://stackoverflow.com/questions/70886455

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install pico

            You can download it from GitHub.

            Support

            For any additional information contact me at nenad.markus@fer.hr. Copyright (c) 2013, Nenad Markus. All rights reserved.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/nenadmarkus/pico.git

          • CLI

            gh repo clone nenadmarkus/pico

          • sshUrl

            git@github.com:nenadmarkus/pico.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Consider Popular Machine Learning Libraries

            tensorflow

            by tensorflow

            youtube-dl

            by ytdl-org

            models

            by tensorflow

            pytorch

            by pytorch

            keras

            by keras-team

            Try Top Libraries by nenadmarkus

            picojs

            by nenadmarkusJavaScript

            n3ar

            by nenadmarkusC

            algogear

            by nenadmarkusC

            p

            by nenadmarkusPython

            gridhopping

            by nenadmarkusJavaScript