GithubHelp home page GithubHelp logo

lookatme-genius-cameraman / t_system Goto Github PK

View Code? Open in Web Editor NEW
19.0 2.0 9.0 44.64 MB

the moving objects tracking system via two axis camera motion (and as optionally n joint robotic arm) for raspberry pi distributions

License: MIT License

Shell 0.33% Python 61.95% HTML 3.82% CSS 4.09% JavaScript 29.44% Dockerfile 0.37%
linux pan-tilt servo-motor face-tracking face-recognition face-detection opencv raspberrypi machine-learning artificial-intelligence tracking-camera dlib robot robotic-arm robot-kinematics slider video-shooting livestream live-streaming video-recording

t_system's Introduction

T_System

the (non-)moving objects tracking system via two axis camera motion and n joint robotic arm for raspberry pi distributions

Github contributors Github release Github stars

Badge Emoji License: MIT

Travis Read The Docs Coveralls Pyup shield Pyup python-3 shield Contributor Covenant

T_System


Supported Environments

Operating systems Linux
Python versions Python 3.x (64-bit)
Distros Raspbian
Package managers APT, pip
Languages English

Requirements

Hardware
  • Raspberry Pi 2,3 B, B + or higher
  • Raspberry Pi Camera
  • n servo motors
  • 2 axis as pan-tilt motions for t_system's locking target ability
  • n-2 axis for t_system's robotic arm feature (Optional)
Software
  • All requirement libraries automatically installing via installation scripts. To see these libraries look at here

Installation

Clone the GitHub repository and run

sudo ./install.sh

in the repository directory.

for development mode: sudo ./install-dev.sh

If there is a failure try sudo -H ./install-dev.sh

Usage

usage: t_system [-h] [--interface {official_stand,augmented,remote_ui,None}]
                [--stand-gpios RED-LED GREEN-LED FAN] [--host HOST]
                [--port PORT] [--debug] [-l] [-s]
                [--detection-model DETECTION_MODEL] [--cascades CASCADES] [-j]
                [--encoding-file ENCODING_FILE] [--use-tracking-api]
                [--tracker-type {BOOSTING,MIL,KCF,TLD,MEDIANFLOW,GOTURN,MOSSE,CSRT}]
                [--camera-rotation CAMERA_ROTATION]
                [--resolution WIDTH HEIGHT] [--framerate FRAMERATE]
                [--chunk CHUNK] [--rate RATE] [--channels CHANNELS]
                [--audio_device_index AUDIO_DEVICE_INDEX]
                [--shoot-formats VIDEO AUDIO MERGED] [--shot-format SHOT] [-x]
                [--sd-channels SD_CHANNELS] [--arm-name ARM]
                [--ls-gpios PAN TILT] [--ls-channels PAN TILT]
                [--AI AI | --non-moving-target | --arm-expansion] [-p]
                [--ap-wlan AP_WLAN] [--ap-inet AP_INET] [--ap-ip AP_IP]
                [--ap-netmask AP_NETMASK] [--ssid SSID] [--password PASSWORD]
                [--wlan WLAN] [--inet INET] [--static-ip STATIC_IP]
                [--netmask NETMASK] [--country-code COUNTRY_CODE]
                [--environment {production,development,testing}]
                [--no-emotion] [-S]
                [-m {single_rect,rotating_arcs,partial_rect,animation_1,None}]
                [-r] [-v] [--version]
                {id,remote-ui-authentication,encode-face,self-update,arm,live-stream,r-sync,log}
                ...

positional arguments:
  {id,remote-ui-authentication,encode-face,self-update,arm,live-stream,r-sync,log}
                        officiate the sub-jobs
    id                  Make identification jobs of T_System.
    remote-ui-authentication
                        Remote UI administrator authority settings of the
                        secret entry point that is the new network connection
                        panel.
    encode-face         Generate encoded data from the dataset folder to
                        recognize the man T_System is monitoring during
                        operation.
    self-update         Update source code of t_system itself via `git pull`
                        command from the remote git repo.
    arm                 Management jobs of Denavit-Hartenberg transform matrix
                        models of robotic arms of T_System.
    live-stream         Make Online Stream jobs of T_System.
    r-sync              Make remote synchronization jobs of T_System.
    log                 Make logging jobs of T_System.

optional arguments:
  -h, --help            show this help message and exit

For detailed output, look at Help

t_system user-interfaces {official_stand,augmented,remote_ui,None} is standard running command. official_stand, augmented and remote_ui are mentioned here, here and here as respectively.

Detailed usage available inside USAGE.md

Interfaces

Official Stand

Portable usage interface v0.6

Special thanks to Uğur Özdemir for the awesome design idea of this Stand.


  • Dependencies

    • Raspberry pi 4 model B/B+.
    • 2 pieces mg995, 3 pieces sg90 or mg90s servo motors.
  • Properties

    Has 1.125 times longer body and arm length than the previous version.

    • Tiny Camera

        8x8mm dimensions 8MP resolution micro camera.
      
    • IR led

        Automatically activatable IR led for advanced night vision. 
      
    • 1 switch key for on/off

        Cut the electiric current directly.
      
    • 4 pieces 18650 li-ion batteries

        Seri connected 2 pieces for feeding Raspbbery Pi and other seri connected 2 pieces for servo motor.
      
    • External Motor Driver

        12 bit 16 channel PWM servo driver with I2C communication.
      
    • Internal Cooler

        2 pieces 30x30x10mm micro fan and the aluminyum block for falling down the cpu temperature.
      
    • Local Network Management

        Scan the around networks. If there is no network connection become an Access Point and serve Remote UI ınternally.
      
    • Remote UI accessing

        No control by tapping. Accessing with Remote UI from mobile or desktop.
      

To see the old version explaining go here

Remote UI

The remotely controlling interface v1.2.7

  • Properties

    • Motion Control

        2 kind control type for the arm. 
            
            1: axis based control. move all axes separately.
            2: direction based control. move according the direction (up-down/forward-backward/right-left).
      
    • Scenario Control

        create scenarios by specifying arm positions and generating motion paths with them for behaving like a camera dolly.
      
    • Previewing / Monitoring

        watch the live video stream during creating scenarios and monitor what is it recording on working.
      
    • Network Control

        Add, update or delete Wi-Fi connection info.
      
    • Recognize People

        Add, update and delete the photos of the people for recognizing them. Choose one, more or all and recognize during the job.
      
    • Record Control

        Get preview or download the video records with the date based sorting system.
      
    • Live Streaming

        Start Live video streaming on available 8 different popular websites include Facebook, YouTube, Periscope and Twitch.
      

Powered by flask as an embedded framework. Available on mobile and desktop.

Augmented

Augmented usage explained here into the AUGMENTED.md.


Supported Distributions: Raspbian. This release is fully supported. Any other Debian based ARM architecture distributions are partially supported.

Contribute

If you want to contribute to T_System then please read this guide.

Please consider to support us with buying a coffee: Buy Me A Coffee

t_system's People

Contributors

mcyba avatar pyup-bot avatar sevgiun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

t_system's Issues

ffmpeg slient video and audio merging bug.

🐛
When I tried the following command:

ffmpeg -y -i test.wav -r 24 -i test.h264 -filter:a aresample=async=1 -c:a flac -c:v copy test.mkv

there is no problem and .mkv video file is created. But when I want to create a .mp4 encoded file and I used the following command:

ffmpeg -y -i test.wav -r 24 -i test.h264 -filter:a aresample=async=1 -c:a flac -c:v copy test.mp4
This error ocurred:

ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
  configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
  WARNING: library configuration mismatch
  avcodec     configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared --enable-version3 --disable-doc --disable-programs --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libavresample   3.  7.  0 /  3.  7.  0
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
Guessed Channel Layout for Input Stream #0.0 : mono
Input #0, wav, from '14_02_22.wav':
  Duration: 00:00:04.27, bitrate: 705 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, mono, s16, 705 kb/s
Input #1, h264, from '14_02_22.h264':
  Duration: N/A, bitrate: N/A
    Stream #1:0: Video: h264 (High), yuv420p(progressive), 320x240, 25 fps, 25 tbr, 1200k tbn, 50 tbc
Stream mapping:
  Stream #1:0 -> #0:0 (copy)
  Stream #0:0 -> #0:1 (pcm_s16le (native) -> flac (native))
Press [q] to stop, [?] for help
[mp4 @ 0x563259e39a20] flac in MP4 support is experimental, add '-strict -2' if you want to use it.
Could not write header for output file #0 (incorrect codec parameters ?): Experimental feature
Error initializing output stream 0:1 -- 
Conversion failed!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.