'잡동사니'에 해당되는 글 13676건

  1. 2025.08.18 NNstreamer - tensor*
  2. 2025.08.18 glade - gtk/gnome rad tool
  3. 2025.08.18 -_-
  4. 2025.08.18 wacom on window 2
  5. 2025.08.18 wacom 펜 도착!
  6. 2025.08.17 하루 늦은.. 기절?
  7. 2025.08.15 시승(?) 1
  8. 2025.08.14 코사인 유사도
  9. 2025.08.14 openVX, verisilicon(vivante)
  10. 2025.08.14 wacom 펜 설명이 왜 이러냐 -_-
embeded/i.mx 8m plus2025. 8. 18. 15:01

i.mx8의 selfie_segmentrer.py 에서 발췌

        # Set backend and delegates
        if self.backend == "CPU":
            if self.platform == "i.MX8MP":
                backend = "true:CPU custom=NumThreads:4"
            else:
                backend = "true:CPU custom=NumThreads:2"
        else:
            if self.platform == "i.MX8MP":
                os.environ["USE_GPU_INFERENCE"] = "0"
                backend = (
                    "true:npu custom=Delegate:External,ExtDelegateLib:libvx_delegate.so"
                )
            else:
                backend = "true:npu custom=Delegate:External,ExtDelegateLib:libethosu_delegate.so"



                + " ! videoconvert ! video/x-raw,format=RGB ! tensor_converter ! "
                + "tensor_transform mode=arithmetic option=typecast:float32,div:255.0 ! "
                + "tensor_filter framework=tensorflow-lite model="
                + self.tflite_model
                + " accelerator="
                + backend
                + " name=tensor_filter latency=1 ! tensor_sink name=tensor_sink "

 

gsteramer의 엘리먼트를 기본으로 NN에 맞춰서 몇개 추가한 것 같은데

[링크 : https://nnstreamer.github.io/gst/nnstreamer/tensor_converter/README.html]

[링크 : https://nnstreamer.github.io/gst/nnstreamer/tensor_transform/README.html]

[링크 : https://nnstreamer.github.io/gst/nnstreamer/tensor_decoder/README.html]

[링크 : https://nnstreamer.github.io/gst/nnstreamer/tensor_filter/README.html]

[링크 : https://nnstreamer.github.io/gst/nnstreamer/tensor_sink/README.html]

   [링크 : https://nnstreamer.github.io/gst/nnstreamer/elements/gsttensor_sink.html]

 

사용예에서 보면 converter / transform / filter / sink 순으로 쓰는 듯

[CAM] - [videoconvert] - [videoscale] - [tee] -+- [queue] - [videoconvert] - [cairooverlay] - [ximagesink]
                                               +- [queue] - [videoscale] - [tensor_converter] - [tensor_transform] - [tensor_filter] - [tensor_sink]

[링크 : https://nnstreamer.github.io/how-to-run-examples.html]

 

 

+

gst-inspector tensor_converter

더보기
root@imx8mpevk:~# gst-inspect-1.0 tensor_converter
Factory Details:
  Rank                     none (0)
  Long-name                TensorConverter
  Klass                    Converter/Tensor
  Description              Converts an audio, video, text, or arbitrary stream to a tensor stream of C-Array for neural network framework filters
  Author                   MyungJoo Ham <myungjoo.ham@samsung.com></myungjoo.ham@samsung.com>

Plugin Details:
  Name                     nnstreamer
  Description              nnstreamer plugin library
  Filename                 /usr/lib/gstreamer-1.0/libnnstreamer.so
  Version                  2.4.0
  License                  LGPL
  Source module            nnstreamer
  Binary package           nnstreamer
  Origin URL               https://github.com/nnstreamer/nnstreamer

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstTensorConverter

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw
                 format: { (string)RGB, (string)BGR, (string)RGBx, (string)BGRx, (string)xRGB, (string)xBGR, (string)RGBA, (string)BGRA, (string)ARGB, (string)ABGR, (string)GRAY8, (string)GRAY16_BE, (string)GRAY16_LE }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
         interlace-mode: progressive
      audio/x-raw
                 format: { (string)S8, (string)U8, (string)S16LE, (string)S16BE, (string)U16LE, (string)U16BE, (string)S32LE, (string)S32BE, (string)U32LE, (string)U32BE, (string)F32LE, (string)F32BE, (string)F64LE, (string)F64BE }
                   rate: [ 1, 2147483647 ]
               channels: [ 1, 2147483647 ]
                 layout: interleaved
      text/x-raw
                 format: utf8
      application/octet-stream
      other/tensors
                 format: flexible
              framerate: [ 0/1, 2147483647/1 ]
      application/octet-stream
      other/protobuf-tensor
              framerate: [ 0/1, 2147483647/1 ]
  
  SRC template: 'src'
    Availability: Always
    Capabilities:
      other/tensor
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: { (string)static, (string)flexible }
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  frames-per-tensor   : The number of frames in output tensor
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 4294967295 Default: 1 
  
  input-dim           : Input tensor dimension from inner array
                        flags: readable, writable
                        String. Default: ""
  
  input-type          : Type of each element of the input tensor
                        flags: readable, writable
                        String. Default: ""
  
  mode                : Converter mode. e.g., mode=custom-code:. For detail, refer to </registered callback name>https://github.com/nnstreamer/nnstreamer/blob/main/gst/nnstreamer/elements/gsttensor_converter.md#custom-converter
                        flags: readable, writable
                        String. Default: ""
  
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "tensorconverter0"
  
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  
  set-timestamp       : The flag to set timestamp when received a buffer with invalid timestamp
                        flags: readable, writable
                        Boolean. Default: true
  
  silent              : Produce verbose output
                        flags: readable, writable
                        Boolean. Default: true
  
  sub-plugins         : Registrable sub-plugins list
                        flags: readable
                        String. Default: "python3,protobuf"

 

gst-inspector tensor_transform

더보기
root@imx8mpevk:~# gst-inspect-1.0 tensor_transform
Factory Details:
  Rank                     none (0)
  Long-name                TensorTransform
  Klass                    Filter/Tensor
  Description              Transforms other/tensor dimensions for different models or frameworks
  Author                   MyungJoo Ham <myungjoo.ham@samsung.com>

Plugin Details:
  Name                     nnstreamer
  Description              nnstreamer plugin library
  Filename                 /usr/lib/gstreamer-1.0/libnnstreamer.so
  Version                  2.4.0
  License                  LGPL
  Source module            nnstreamer
  Binary package           nnstreamer
  Origin URL               https://github.com/nnstreamer/nnstreamer

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseTransform
                         +----GstTensorTransform

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      other/tensor
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: { (string)static, (string)flexible }
              framerate: [ 0/1, 2147483647/1 ]
  
  SRC template: 'src'
    Availability: Always
    Capabilities:
      other/tensor
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: { (string)static, (string)flexible }
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  acceleration        : Orc acceleration
                        flags: readable, writable
                        Boolean. Default: true
  
  apply               : Select tensors to apply, separated with ',' in case of multiple tensors. Default to apply all tensors.
                        flags: readable, writable
                        String. Default: ""
  
  mode                : Mode used for transforming tensor
                        flags: readable, writable
                        Enum "gtt_mode_type" Default: -1, "unknown"
                           (0): dimchg           - Mode for changing tensor dimensions, option=FROM_DIM:TO_DIM (with a regex, ^([0-9]|1[0-5]):([0-9]|1[0-5])$, where NNS_TENSOR_RANK_LIMIT is 16)
                           (1): typecast         - Mode for casting type of tensor, option=(^[u]?int(8|16|32|64)$|^float(16|32|64)$)
                           (2): arithmetic       - Mode for arithmetic operations with tensor, option=[typecast:TYPE,][per-channel:(false|true@DIM),]add|mul|div:NUMBER[@CH_IDX], ...
                           (3): transpose        - Mode for transposing shape of tensor, option=D1':D2':D3':D4 (fixed to 3)
                           (4): stand            - Mode for statistical standardization of tensor, option=(default|dc-average)[:TYPE][,per-channel:(false|true)]
                           (5): clamp            - Mode for clamping all elements of tensor into the range, option=CLAMP_MIN:CLAMP_MAX
                           (-1): unknown          - Unknown or not-implemented-yet mode
  
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "tensortransform0"
  
  option              : Option for the tensor transform mode ?
                        flags: readable, writable
                        String. Default: null
  
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  
  qos                 : Handle Quality-of-Service events
                        flags: readable, writable
                        Boolean. Default: false
  
  silent              : Produce verbose output ?
                        flags: readable, writable
                        Boolean. Default: true
  
  transpose-rank-limit: The rank limit of transpose, which varies per version of nnstreamer and may be lower than the global rank limit if it is over 4.
                        flags: readable
                        Unsigned Integer. Range: 0 - 16 Default: 4 

 

 

gst-inspector tensor_decoder

더보기
root@imx8mpevk:~# gst-inspect-1.0 tensor_decoder  
Factory Details:
  Rank                     none (0)
  Long-name                TensorDecoder
  Klass                    Converter/Tensor
  Description              Converts tensor stream of C-Array for neural network framework filters to audio or video stream
  Author                   Jijoong Moon <jijoong.moon@samsung.com>

Plugin Details:
  Name                     nnstreamer
  Description              nnstreamer plugin library
  Filename                 /usr/lib/gstreamer-1.0/libnnstreamer.so
  Version                  2.4.0
  License                  LGPL
  Source module            nnstreamer
  Binary package           nnstreamer
  Origin URL               https://github.com/nnstreamer/nnstreamer

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseTransform
                         +----GstTensorDecoder

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      other/tensor
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: static
            num_tensors: [ 1, 16 ]
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: flexible
              framerate: [ 0/1, 2147483647/1 ]
  
  SRC template: 'src'
    Availability: Always
    Capabilities:
      ANY

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  config-file         : sets config file path which contains plugins properties
                        flags: 
** (gst-inspect-1.0:1706): WARNING **: 05:54:08.872: /usr/src/debug/nnstreamer/2.4.0/gst/nnstreamer/elements/gsttensor_decoder.c:592: invalid property id 13 for "config-file" of type 'GParamString' in 'GstTensorDecoder'
readable, writable
                        String. Default: null
  
  mode                : Decoder mode
                        flags: readable, writable
                        String. Default: ""
  
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "tensordecoder0"
  
  option1             : option for specific decoder modes, 1st one.
                        flags: readable, writable
                        String. Default: null
  
  option2             : option for specific decoder modes, 2nd one.
                        flags: readable, writable
                        String. Default: null
  
  option3             : option for specific decoder modes, 3rd one.
                        flags: readable, writable
                        String. Default: null
  
  option4             : option for specific decoder modes, 4th one.
                        flags: readable, writable
                        String. Default: null
  
  option5             : option for specific decoder modes, 5th one.
                        flags: readable, writable
                        String. Default: null
  
  option6             : option for specific decoder modes, 6th one.
                        flags: readable, writable
                        String. Default: null
  
  option7             : option for specific decoder modes, 7th one.
                        flags: readable, writable
                        String. Default: null
  
  option8             : option for specific decoder modes, 8th one.
                        flags: readable, writable
                        String. Default: null
  
  option9             : option for specific decoder modes, 9th one.
                        flags: readable, writable
                        String. Default: null
  
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  
  qos                 : Handle Quality-of-Service events
                        flags: readable, writable
                        Boolean. Default: false
  
  silent              : Produce verbose output
                        flags: readable, writable
                        Boolean. Default: true
  
  sub-plugins         : Registrable sub-plugins list
                        flags: readable
                        String. Default: "protobuf,direct_video,bounding_boxes,image_segment,python3,octet_stream,pose_estimation,tensor_region,image_labeling"

 

 

gst-inspector tensor_filter

더보기
root@imx8mpevk:~# gst-inspect-1.0 tensor_filter 
Factory Details:
  Rank                     none (0)
  Long-name                TensorFilter
  Klass                    Filter/Tensor
  Description              Handles NN Frameworks (e.g., tensorflow) as Media Filters with other/tensor type stream
  Author                   MyungJoo Ham <myungjoo.ham@samsung.com>

Plugin Details:
  Name                     nnstreamer
  Description              nnstreamer plugin library
  Filename                 /usr/lib/gstreamer-1.0/libnnstreamer.so
  Version                  2.4.0
  License                  LGPL
  Source module            nnstreamer
  Binary package           nnstreamer
  Origin URL               https://github.com/nnstreamer/nnstreamer

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseTransform
                         +----GstTensorFilter

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      other/tensor
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: { (string)static, (string)flexible }
              framerate: [ 0/1, 2147483647/1 ]
  
  SRC template: 'src'
    Availability: Always
    Capabilities:
      other/tensor
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: { (string)static, (string)flexible }
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:

  accelerator         : Set accelerator for the subplugin with format (true/false):(comma separated ACCELERATOR(s)). true/false determines if accelerator is to be used. list of accelerators determines the backend (ignored with false). Example, if GPU, NPU can be used but not CPU - true:npu,gpu,!cpu. The full list of accelerators can be found in nnstreamer_plugin_api_filter.h. Note that only a few subplugins support this property.
                        flags: readable, writable
                        String. Default: ""
  
  custom              : Custom properties for subplugins ?
                        flags: readable, writable
                        String. Default: ""
  
  framework           : Neural network framework
                        flags: readable, writable
                        String. Default: "auto"
  
  input               : Input tensor dimension from inner array, up to 4 dimensions ?
                        flags: readable, writable
                        String. Default: ""
  
  input-combination   : Select the input tensor(s) to invoke the models
                        flags: readable, writable
                        String. Default: ""
  
  inputlayout         : Set channel first (NCHW) or channel last layout (NHWC) or None for input data. Layout of the data can be any or NHWC or NCHW or none for now. 
                        flags: readable, writable
                        String. Default: ""
  
  inputname           : The Name of Input Tensor
                        flags: readable, writable
                        String. Default: ""
  
  inputranks          : The Rank of the Input Tensor, which is separated with ',' in case of multiple Tensors
                        flags: readable
                        String. Default: ""
  
  inputtype           : Type of each element of the input tensor ?
                        flags: readable, writable
                        String. Default: ""
  
  invoke-dynamic      : Flexible tensors whose memory size changes can be used asinput and output of the tensor filter. With this option, the output caps is always in the format of flexible tensors.
                        flags: readable, writable
                        Boolean. Default: false
  
  is-updatable        : Indicate whether a given model to this tensor filter is updatable in runtime. (e.g., with on-device training)
                        flags: readable, writable
                        Boolean. Default: false
  
  latency             : Turn on performance profiling for the average latency over the recent 10 inferences in microseconds. Currently, this accepts either 0 (OFF) or 1 (ON).
                        flags: readable, writable
                        Integer. Range: 0 - 1 Default: -1 
  
  latency-report      : Report to the pipeline the estimated tensor-filter element latency.
                        flags: readable, writable
                        Boolean. Default: false
  
  model               : File path to the model file. Separated with ',' in case of multiple model files(like caffe2)
                        flags: readable, writable
                        String. Default: ""
  
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "tensorfilter0"
  
  output              : Output tensor dimension from inner array, up to 4 dimensions ?
                        flags: readable, writable
                        String. Default: ""
  
  output-combination  : Select the output tensor(s) from the input tensor(s) and/or model output
                        flags: readable, writable
                        String. Default: ""
  
  outputlayout        : Set channel first (NCHW) or channel last layout (NHWC) or None for output data. Layout of the data can be any or NHWC or NCHW or none for now. 
                        flags: readable, writable
                        String. Default: ""
  
  outputname          : The Name of Output Tensor
                        flags: readable, writable
                        String. Default: ""
  
  outputranks         : The Rank of the Out Tensor, which is separated with ',' in case of multiple Tensors
                        flags: readable
                        String. Default: ""
  
  outputtype          : Type of each element of the output tensor ?
                        flags: readable, writable
                        String. Default: ""
  
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  
  qos                 : Handle Quality-of-Service events
                        flags: readable, writable
                        Boolean. Default: false
  
  shared-tensor-filter-key: Multiple element instances of tensor-filter in a pipeline may share a single resource instance if they share the same framework (subplugin) and neural network model. Designate "shared-tensor-filter-key" to declare and share such instances. If it is NULL, it means the model representations is not shared.
                        flags: readable, writable
                        String. Default: ""
  
  silent              : Produce verbose output
                        flags: readable, writable
                        Boolean. Default: true
  
  sub-plugins         : Registrable sub-plugins list
                        flags: readable
                        String. Default: "custom,custom-easy,cpp,python3,tvm,tensorflow2-lite"
  
  throughput          : Turn on performance profiling for the average throughput in the number of outputs per seconds (i.e., FPS), multiplied by 1000 to represent a floating point using an integer. Currently, this accepts either 0 (OFF) or 1 (ON).
                        flags: readable, writable
                        Integer. Range: 0 - 1 Default: -1 

 

 

gst-inspector tensor_sink

더보기
root@imx8mpevk:~# gst-inspect-1.0 tensor_sink  
Factory Details:
  Rank                     none (0)
  Long-name                TensorSink
  Klass                    Sink/Tensor
  Description              Sink element to handle tensor stream
  Author                   Samsung Electronics Co., Ltd.

Plugin Details:
  Name                     nnstreamer
  Description              nnstreamer plugin library
  Filename                 /usr/lib/gstreamer-1.0/libnnstreamer.so
  Version                  2.4.0
  License                  LGPL
  Source module            nnstreamer
  Binary package           nnstreamer
  Origin URL               https://github.com/nnstreamer/nnstreamer

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseSink
                         +----GstTensorSink

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      other/tensor
              framerate: [ 0/1, 2147483647/1 ]
      other/tensors
                 format: { (string)static, (string)flexible, (string)sparse }
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'

Element Properties:

  async               : Go asynchronously to PAUSED
                        flags: readable, writable
                        Boolean. Default: true
  
  blocksize           : Size in bytes to pull per buffer (0 = default)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 4096 
  
  emit-signal         : Emit signal for new data, stream start, eos
                        flags: readable, writable
                        Boolean. Default: true
  
  enable-last-sample  : Enable the last-sample property
                        flags: readable, writable
                        Boolean. Default: true
  
  last-sample         : The last sample received in the sink
                        flags: readable
                        Boxed pointer of type "GstSample"
  
  max-bitrate         : The maximum bits per second to render (0 = disabled)
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 
  
  max-lateness        : Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)
                        flags: readable, writable
                        Integer64. Range: -1 - 9223372036854775807 Default: -1 
  
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "tensorsink0"
  
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  
  processing-deadline : Maximum processing time for a buffer in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 20000000 
  
  qos                 : Generate Quality-of-Service events upstream
                        flags: readable, writable
                        Boolean. Default: true
  
  render-delay        : Additional render delay of the sink in nanoseconds
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 
  
  signal-rate         : New data signals per second (0 for unlimited, max 500)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 500 Default: 0 
  
  silent              : Produce verbose output
                        flags: readable, writable
                        Boolean. Default: true
  
  stats               : Sink Statistics
                        flags: readable
                        Boxed pointer of type "GstStructure"
                                                        average-rate: 0
                                                             dropped: 0
                                                            rendered: 0

  
  sync                : Sync on the clock
                        flags: readable, writable
                        Boolean. Default: false
  
  throttle-time       : The time to keep between rendered buffers (0 = disabled)
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0 
  
  ts-offset           : Timestamp offset in nanoseconds
                        flags: readable, writable
                        Integer64. Range: -9223372036854775808 - 9223372036854775807 Default: 0 
  

Element Signals:

  "eos" :  void user_function (GstElement * object,
                               gpointer user_data);

  "stream-start" :  void user_function (GstElement * object,
                                        gpointer user_data);

  "new-data" :  void user_function (GstElement * object,
                                    GstBuffer * arg0,
                                    gpointer user_data);

 

'embeded > i.mx 8m plus' 카테고리의 다른 글

nvidia tao toolkit  (0) 2025.08.22
eqi - model tool  (0) 2025.08.22
openVX, verisilicon(vivante)  (0) 2025.08.14
gstreamer pipeline / appsink  (0) 2025.08.14
nxp eiq 우분투 실행 실패  (0) 2025.07.31
Posted by 구차니
파일방2025. 8. 18. 12:03

소스를 보다 보니 glade라는 확장자로 xml 파일이 있길래

찾아보니 GTK를 이용하여 gnome용 어플리케이션을 작성할 수 있는 일종의

wpf 같은 느낌의 무엇?

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->

<
interface>

 

gtk 공부하기 싫어서 맨날 피해다녔는데 이렇게 해주는 녀석이 있으면 써봐야겠다.

[링크 : https://glade.gnome.org/]

'파일방' 카테고리의 다른 글

GNS3  (0) 2025.09.01
makeself  (0) 2025.08.25
nagios  (0) 2025.07.25
suricata  (0) 2025.07.25
hping  (0) 2025.07.25
Posted by 구차니
개소리 왈왈/블로그2025. 8. 18. 12:00

-_-

대충 15일에 한번씩 방문자 수가 난리인가 -_-

 

Posted by 구차니
하드웨어/pen tablet2025. 8. 18. 11:26

노트북에 깔고 해보는데 역시.. 윈도우가 본진인가.. 프로그램이 본체인가..

리눅스에서도 저렇게 설정이 가능하면 해봐야겠다.

다른건 모르겠고 정밀모드는 특정 작은 영역에 대해서 타블렛 전체 판이 매핑이 된다.

그래서 많이 움직여도 조금만 움직이는 "정밀모드"라는 말이 딱 맞는 느낌.

 

 

설정을 누르면 아래와 같이 전체 화면으로 설정된 내용들이 뜬다. 기억 안날때 눌러보게 될 듯.

 

터치는 별건 없고..

 

그립 펜에서 "펜촉의 감촉"은 개인적으로는 3단계 정도로 하는게 나을 것 같다. 4는 좀 엄청 세게 눌러야 최대값이 들어와서..

그나저나 윈도우에서는 더블클릭, 우클릭으로 할당되어 있다. 우분투에서는 우클릭, ??? 인 것 같던데..

 

+

윈도우용 드라이버가 설치되지 않으면 작동을 하지 않는다. 터치, 펜. 버튼 모두!

 

+

윈도우에서는 화면 돌려놔도 잘 된다. 야이 리눅스 지원 왜 이따구야

아까는 펜 탭만 있는 줄 알았는데 다시 보니 "지우개 스위치", "매핑"이 있고

 

매핑에서 전체 화면에 대해서 어떤 방향으로 타블렛을 놓고 쓸지

 

타블렛 조작영역 - 일부로 하면 아래와 같이 특정 영역만 사용이 가능하게 된다.

그런데 저거.. 정밀모드 반대인데 쓸데가 있으려나?

 

아래는 위의 셋팅에서 전체화면 스샷.

4k를 세로로 놨더니 장난 아니긴 하구만.

 

 

 

'하드웨어 > pen tablet' 카테고리의 다른 글

와콤 펜 종류  (0) 2025.08.18
wacom 진단  (0) 2025.08.18
wacom 펜 도착!  (0) 2025.08.18
wacom 펜 설명이 왜 이러냐 -_-  (0) 2025.08.14
wacom 의 세계..(?) - 아트 펜  (0) 2025.08.12
Posted by 구차니
하드웨어/pen tablet2025. 8. 18. 10:18

아니.. 8월 14, 15일 택배없는 날이라고 방심했더니

오라는(?) 목요일에는 안오고 갑자기 16일 토요일에 회사로 택배 도착 -_-

누가 가져가면 어떡하지 노심초사하다가 오늘 출근하니 택배 있는 곳에 잘 있다.

 

우분투에서 스타일러스는 아래와 같이 펜이 인식되지 않으면 아무것도 뜨지 않는데

 

펜으로 위를 스~윽 지나가면 아래와 같이 뜬다.

위단추는 우클릭, 아래는 용도 불명인것 같은데.. 휠 클릭으로 하면 좀 편하려나?

 

그 와중에 클릭하려고 디지타이저에 내리면서 위치가 흔들리니 클릭이 안되서 멘붕.

dpi가 높다지만 해상도도 원체 높아서 조금만 움직이면 휙휙 가버리니 이걸 어떻게 보정해서 써야하나

 

그 와중에(!)

gimp 에서 지우개 도 설정이 기본으로 안되어 있어서 찾아봐야 할 듯.

 

아. 그리고 모니터에 연결하기는

 

잘 되는데.. 4k 모니터를 90도 CW 방향으로 회전시켜 놨더니 타블렛에서 상하가 모니터 상에 좌우로 움직인다.

모니터 별로 회전방향이 다르 경우 어떻게 설정해야 하지...?

 

그런데 모니터는 세로인데 타블렛을 가로로 놓고 인식만 돌리는게 옳은...가?!

xsetwacom --set 31  Rotate ccw
xsetwacom --set 30  Rotate ccw
xsetwacom --set 29  Rotate ccw
xsetwacom --set 28  Rotate ccw
xsetwacom --set 27  Rotate ccw

[링크 : https://askubuntu.com/questions/1279910/how-to-change-tablet-orientation-with-kubuntu-18-04-and-wacom-bamboo-ctl-470]

 

+

2025.08.29

$ xsetwacom --list devices
Wacom Intuos Pro M Pen stylus    id: 9 type: STYLUS    
Wacom Intuos Pro M Pad pad       id: 10 type: PAD       
Wacom Intuos Pro M Finger touch  id: 11 type: TOUCH     
Wacom Intuos Pro M Pen eraser    id: 24 type: ERASER    
Wacom Intuos Pro M Pen cursor    id: 25 type: CURSOR    

$ xsetwacom --get 9 Rotate
none

$ xsetwacom --get 10 Rotate
Property 'Wacom Rotation' does not exist on device.

$ xsetwacom --get 11 Rotate
none

$ xsetwacom --get 24 Rotate
none

$ xsetwacom --get 25 Rotate
none

이름을 쳐도 되고 id를 쳐도 되는데

stylus의 방향을 바꾸어야 하는데.. 모니터 별로 설정되는게 아니다 보니

모니터 하나가 90도 돌려져 있으면 해당 모니터 갈때만 명령어로 stylus의 방향을 돌려주어야 한다. 드럽게 귀찮네 -_-

 

다만 타블렛이 가로인데 모니터가 세로면 비율이 안맞으니까

Area를 같이 비슷한 비율로 맞춰주는것도 방법일듯 하다.

'하드웨어 > pen tablet' 카테고리의 다른 글

wacom 진단  (0) 2025.08.18
wacom on window  (2) 2025.08.18
wacom 펜 설명이 왜 이러냐 -_-  (0) 2025.08.14
wacom 의 세계..(?) - 아트 펜  (0) 2025.08.12
ubuntu wacom 타블렛 지원 .. part 2?  (1) 2025.08.12
Posted by 구차니

8시 부터 8시 까지 자버린듯

4시간 자고 활동은 오라지게 해서 피 갂으면서 깨어있었다는 느낌이었는데

그렇게 훅 가버릴 줄이야.. -_-

 

그 와중에 일요일은 열심히 홈월드 리마스터 1편...

데저트 오브 카락 언제 하지?

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

애견미용이 비싸서!  (0) 2025.08.23
다시 돌아온 열대야  (0) 2025.08.19
시승(?)  (1) 2025.08.15
타이어 펑크, 교체  (0) 2025.08.13
  (0) 2025.08.03
Posted by 구차니

딸래미 친구(?) 가족 차가 9인승 디젤 카니발이래서

아내 보여는데 좋아라 한다.

흐음.. 사고 싶긴한데 고민이네

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

다시 돌아온 열대야  (0) 2025.08.19
하루 늦은.. 기절?  (0) 2025.08.17
타이어 펑크, 교체  (0) 2025.08.13
  (0) 2025.08.03
더워서 멀 못해먹겠네  (0) 2025.07.27
Posted by 구차니

얼굴을 어떻게 인식하나 해서 찾아보는 중

코드에서 아래의 내용이 있어 보니 cosine similarity 라고 나오는데

 

    def get_similarity(self, face_a, face_b):
        """Finds the similarity between two masks
        This is done by taking the vectors in the face mask and finding the
        cosine similarity between them. The formula to find this is:

                                  f(a[n] * b[n])
        sim (a[],b[]) = -----------------------------------
                         sqrt(f(a[n]^2)) * sqrt(f(b[n]^2))

        where:
        - a[] and b[] both represent the array of values of a single face mask
        - f(n) is the sum of values where n is 0 through the length of a[]
          minus 1
        - a[] and b[] have equal lengths and equal indexes map to the same
          points on the face mask

        The idea behind this method is that vectors that have smaller
        vectors between them (independent of magnitude) should in theory be
        similar.
        """
        dot = 0
        a_sum = 0
        b_sum = 0
        for count in range(128):
            dot = dot + (face_a[count] * face_b[count])
            a_sum = a_sum + (face_a[count] * face_a[count])
            b_sum = b_sum + (face_b[count] * face_b[count])
        sim = dot / (np.sqrt(a_sum) * np.sqrt(b_sum))
        return sim

 

대충 검색해보니 취향을 찾기로도 써먹기도 한다고

[링크 : https://wikidocs.net/24603]

[링크 : https://benn.tistory.com/62]

 

[링크 : https://snu-eng.kr/html/2403/SS46_23_special.php]

 

face_recognition 라이브러리에서는 face_encodings로 특징점을 추출하고

compare_faces라는 함수로 유사도를 계산해주는 듯.

import face_recognition
known_image = face_recognition.load_image_file("biden.jpg")
unknown_image = face_recognition.load_image_file("unknown.jpg")

biden_encoding = face_recognition.face_encodings(known_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]

results = face_recognition.compare_faces([biden_encoding], unknown_encoding)

[링크 : https://github.com/ageitgey/face_recognition]

'이론 관련 > 2D 그래픽 관련' 카테고리의 다른 글

retinex 알고리즘  (0) 2022.01.20
jpeg 헤더  (0) 2020.12.01
영상처리 관련 링크 기술  (0) 2017.04.19
HDRi / HDRI (High dynamic range imaging)  (0) 2011.04.29
BDF - Bitmap Distribution Format  (0) 2011.04.28
Posted by 구차니
embeded/i.mx 8m plus2025. 8. 14. 16:42

영상처리의 가속을 위한 크로스 플랫폼.

Portable, Power-efficient Vision Processing
OpenVX™ is an open, royalty-free standard for cross platform acceleration of computer vision applications. OpenVX enables performance and power-optimized computer vision processing, especially important in embedded and real-time use cases such as face, body and gesture tracking, smart video surveillance, advanced driver assistance systems (ADAS), object and scene reconstruction, augmented reality, visual inspection, robotics and more.

[링크 : https://www.khronos.org/openvx/]

[링크 : https://cho001.tistory.com/224]

 

소스 뒤져보다 보니 so 파일 두개가 보이는데

        if os.path.exists("/usr/lib/libtim-vx.so"):
            backends_available = ["NPU", "CPU"]
            
            ext_delegate = tflite.load_delegate("/usr/lib/libvx_delegate.so")

 

libtim-vx.so는 openVX를 통해 가속받는 VeriSilicon 사의 Tensor Interface Module 을 위한 라이브러리이고

[링크 : https://github.com/VeriSilicon/TIM-VX]

 

libvx_delegate.so 는 openVX 함수를 위한 것인듯 한데..

[링크 : https://github.com/nxp-imx/tflite-vx-delegate-imx]

 

verisilicon 으로 검색하면 vivante NPU IP 를 소유하고 있는 것으로 보인다.

NXP 에서 vivante GPU를 구매해서 GC7000UL을 i.mx8mp에 넣은것 같다.

그러다 보니 gpu / npu를 통일 업체걸로 구매한 듯.

[링크 : https://www.verisilicon.com/en/IPPortfolio/VivanteNPUIP]

'embeded > i.mx 8m plus' 카테고리의 다른 글

eqi - model tool  (0) 2025.08.22
NNstreamer - tensor*  (0) 2025.08.18
gstreamer pipeline / appsink  (0) 2025.08.14
nxp eiq 우분투 실행 실패  (0) 2025.07.31
nxp g2d_blit  (0) 2025.04.01
Posted by 구차니
하드웨어/pen tablet2025. 8. 14. 16:07

2017을 안봤는데, 이게 pth-660 이었으니.. 또 다른 세대가 되는건가 보다.

 

[링크 : https://www.wacom.com/en-in/products/wacom-intuos-pro-2017]

 

이전 세대의 Intuos Pro / Cintiq의 펜을 Wacom Intuos Pro (2017)에도 같이 사용할 수 있습니까?

예,  이전 세대 Wacom 제품의 펜을 일부 사용할 수 있습니다. 하지만 이전 세대 제품에는  Wacom Intuos Pro 타블렛에 포함 된 Pro Pen 2를 사용할 수는 없습니다. 

프로 펜 (KP503E): 대중적인  Wacom 펜 기능을 제공하는 인체 공학적 디자인의 펜. 새로운 Wacom Intuos Pro에서 이 펜을 사용하면 8192가 아닌 2048 개의 압력 수준이 제공됩니다.

아트 펜 (KP701E2): 가장 인기있는 액세서리 펜은 회전 브러시, 마커, 서예 펜 및 기타 자연 매체 도구의 느낌을 제공합니다. 라운드 또는 끌 포인트 펜촉과 함께 사용하십시오. 응용 프로그램 소프트웨어 지원이 필요합니다. 새로운 Wacom Intuos Pro에서 이 펜을 사용하면 8192가 아닌 2048 개의 압력 수준이 제공됩니다.

클래식 펜 (KP300E2): 더 얇은 펜을 선호하는 사람들을 위해 디자인 되었기 때문에 표준 그립 펜 대신 사용할 수 있습니다. 새로운 Wacom Intuos Pro에서 이 펜을 사용하면 8192 에어 브러시 (KP400E2)가 아닌 2048 개의 압력 레벨이 제공됩니다. 에어 브러시 효과를 선호하는 사람들을 위해 설계되었습니다. 새로운 Wacom Intuos Pro에서이 펜을 사용하면 8192가 아닌 2048 개의 압력 수준이 제공됩니다.

그립 펜 (KP501E2): 모든 인기있는 Wacom 펜 기능을 제공하는 인체 공학적 디자인의 펜. 새로운 Wacom Intuos Pro에서이 펜을 사용하면 8192가 아닌 2048 개의 압력 수준이 제공됩니다. 이전 세대 제품에 Wacom Intuos Pro 태블릿에 포함 된 Pro Pen 2를 사용할 수 없습니다.

[링크 : https://support.wacom.com/hc/ko/articles/1500006330202-이전-세대의-Intuos-Pro-Cintiq의-펜을-Wacom-Intuos-Pro-2017-에도-같이-사용할-수-있습니까]

 

KP-504E-00DZX
와콤 프로펜 2

호환 가능한 제품
와콤 인튜어스 프로 (PTH-460, PTH-660, PTH-860)

[링크 : https://estore.wacom.kr/ko-kr/wacom-pro-pen-2-with-case-kp-504e-00dzx.html?srsltid=AfmBOookbDl3GScasFTMDi3Y2vBfRnZrl7Z_osQjuaG6TdNo7d1D4nl7]

 

KP-501E-01DBC
그립펜 - 인튜어스 4/5 & 구형 신티크 모델 용

호환 가능한 제품
인튜어스 프로 (PTH-451, PTH-651, PTH-851)

[링크 : https://estore.wacom.kr/ko-kr/intuos4-5-cintiq-2nd-gen-grip-pen-kp-501e-01dbc.html?srsltid=AfmBOopt-FrsiFWA9_fc8GwJw8qx4qyVtl_kjjJdLVzKyt9-amdwyDjF]

 

 

'하드웨어 > pen tablet' 카테고리의 다른 글

wacom on window  (2) 2025.08.18
wacom 펜 도착!  (0) 2025.08.18
wacom 의 세계..(?) - 아트 펜  (0) 2025.08.12
ubuntu wacom 타블렛 지원 .. part 2?  (1) 2025.08.12
xsetwacom with intuos pro  (0) 2025.08.08
Posted by 구차니