- 博客(0)
- 资源 (13)
- 收藏
- 关注
tensorflow简单原理介绍
ensorFlow是Google开源的一款人工智能学习系统的开源平台。为什么叫这个名字呢?Tensor的意思是张量,代表N维数组;Flow的意思是流,代表基于数据流图的计算。把N维数字从流图的一端流动到另一端的过程,就是人工智能神经网络进行分析和处理的过程。
2018-03-06
TensorFlow原理介绍
TensorFlow是Google开源的一款人工智能学习系统的开源平台。为什么叫这个名字呢?Tensor的意思是张量,代表N维数组;Flow的意思是流,代表基于数据流图的计算。把N维数字从流图的一端流动到另一端的过程,就是人工智能神经网络进行分析和处理的过程。
2018-03-06
TensorFlow原理介绍(实操版)V2.0
TensorFlow是Google开源的一款人工智能学习系统的开源平台。为什么叫这个名字呢?Tensor的意思是张量,代表N维数组;Flow的意思是流,代表基于数据流图的计算。把N维数字从流图的一端流动到另一端的过程,就是人工智能神经网络进行分析和处理的过程。
2018-03-05
人工智能之TensorFlow
TensorFlow是Google开源的一款人工智能学习系统的开源平台。为什么叫这个名字呢?Tensor的意思是张量,代表N维数组;Flow的意思是流,代表基于数据流图的计算。把N维数字从流图的一端流动到另一端的过程,就是人工智能神经网络进行分析和处理的过程。
2018-03-05
高通Qcom camera otp驱动代码总结
一、 otp与eeprom介绍
OTP(One Time Programmable) MCU的一种存储器类型,一次
性烧写编程,烧写之后不能在擦除,数据不再改变。 EEPROM(
Electrically Erasable Programmable ROM,电可擦除可编程ROM)
,是一种掉电后不丢失的存储芯片,用作非易失的数据存储。 Otp是
sensor内部的一个存储, eeprom是sensor外挂的存储器件,有自己的
设备地址。
随着消费者对摄像头模组成像品质及快速对焦等需求增高,摄像
头模组中存储的数据(镜头参数,白平衡参数,自动对焦位置信息及
其它一些出厂设置和版本信息等)越来越大, Sensor的内部空间已经
不能满足需求。 EEPROM以其通用性,稳定的数据存储,各种规格容
量,满足了摄像头模组对参数存储的各种需求。就目前来看,普通的
8M/13M及以上的摄像头模组选用16-64K的EEPROM存储器,带OIS
、双摄像头等功能的摄像头模组,则选用更大容量的64-128K的
EEPROM存储器。
2017-12-14
fastboot windows烧录img img过大
fastboot windows烧录img img过大
Fastboot一词可能很多朋友都不会陌生,对于一些刷机老手来说,Fastboot再熟悉不过了。即便是一些手机小白童鞋,有时候,也可能会不小进入安卓手机的Fastboot模式。Fastboot是什么意思,如何进入?这是不少网友经常问到的,小编以下为大家作答。
2017-12-14
高通camera 马达驱动
关于dw9718s马达学习笔记:
/* uint32_t i2c_addr */
配置关于i2c通信的地址,三十二位的整形(这样就可以包括byte或者word型)
/* enum msm_actuator_data_type i2c_data_type */
i2c通信的数据类型,因为是bytes所以设置成MSM_ACTUATOR_BYTE_DATA
/* enum msm_actuator_addr_type i2c_addr_type */
i2c通信的地址类型,因为是bytes所以设置成MSM_ACTUATOR_BYTE_DATA
/* enum msm_actuator_data_type i2c_data_type */
关于马达的类型,这里是VCM型,所有是设置成ACTUATOR_VCM,另外还有piezo和hvcm类型
/* uint16_t data_size */
ADC数据多少位,这里是10bit,所以设置成10(所以编码大小范围就是1023-0);
/* struct msm_actuator_reg_params_t reg_params[MAX_ACTUATOR_REG_TBL_SIZE] */
这里应该是寄存器的参数设置,
第一个是马达写类型,这里是通过DAC,所以第一个参数是MSM_ACTUATOR_WRITE_DAC
第二个是关于硬件的掩码,
第三个是寄存器的地址,
第四个是硬件移位,
第五个是数据移位,
/* uint16_t init_setting_size */
这个是初始化时候用到多少个寄存器的数量,因为这里只设置0x01和0x05,所以设置为2
2017-12-14
高通camera senseor驱动参数介绍
驱动常见问题)sensor不下电的方法
一般camera很受温度的影响:参考文档80_NL239_33SC
方法1.找到msm_sensor.c文件--------msm_sensor_power_down函数,然后将return msm_camera_power_down(power_info,
sensor_device_type,
sensor_i2c_client); 改成return 0;
然后找到对应的sensor_lib.h驱动文件:将下电都干掉。这样就可以一直上电,量到sensor的电压了
方法二:
找到msm_sensor.c文件--------msm_sensor_power_up函数,然后for (retry = 0; retry < 3; retry++) 将这里的3改成一个很大的数
值,这样就可以不停的调用msm_camera_power_up与msm_sensor_check_id两个函数。
驱动准备工作需要:
IMX376 sensor spec, sensor settings, application notes
imx376的application note,register map的资料以及min line cnt 、vert offset、max line cnt等相关参数
驱动中常见错误sof错误:
1.mipi通道错误。
2.settle_cnt值
3.时钟问题vt_pixel_clk,一般是这个值设置太小了。
4.开流过早、关流不彻底问题。
2017-12-14
数字水印的(LSB算法)嵌入和提取VC++实现
// WaterMark.h : main header file for the WATERMARK application
//
#if !defined(AFX_WATERMARK_H__6895B557_4450_4088_810E_A87674673BCB__INCLUDED_)
#define AFX_WATERMARK_H__6895B557_4450_4088_810E_A87674673BCB__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
/////////////////////////////////////////////////////////////////////////////
// CWaterMarkApp:
// See WaterMark.cpp for the implementation of this class
//
class CWaterMarkApp : public CWinApp
{
public:
CWaterMarkApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CWaterMarkApp)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CWaterMarkApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_WATERMARK_H__6895B557_4450_4088_810E_A87674673BCB__INCLUDED_)
2017-12-11
高通预览流程图
整个流程的总结如下:
->先是系统注册 CameraService 的服务
->APP 层调用 Camera.open()
->Camera.java 调用 JNI native_setup()
->JNI 层调用 android_hardware_Camera_native_setup
-> HAL 客户端(Camera.cpp)调用 connect 与服务端(CameraService.cpp)连接得到
CameraService 中的 CameraClient 的一个实例
->服务端 CameraClient 的初始化,实例化 Camera Hal 接口 CameraHardwareInterface
->CameraHardwareInterface 打开 Camera 驱动, 真正的实现是在 QCamera2HWI.cpp 中。
对应的代码层次:
App--->framework-java--->jni--->framework-c++(Camera)--->binder--->
framework-c++(CameraService)-->framework-c++(CameraService::Client)--->
framework-c++(CameraClient) --->(CameraHardwareInterface) ---> HAL
2017-12-11
高通camera美颜算法接入
整个流程的总结如下:
->先是系统注册 CameraService 的服务
->APP 层调用 Camera.open()
->Camera.java 调用 JNI native_setup()
->JNI 层调用 android_hardware_Camera_native_setup
-> HAL 客户端(Camera.cpp)调用 connect 与服务端(CameraService.cpp)连接得到
CameraService 中的 CameraClient 的一个实例
->服务端 CameraClient 的初始化,实例化 Camera Hal 接口 CameraHardwareInterface
->CameraHardwareInterface 打开 Camera 驱动, 真正的实现是在 QCamera2HWI.cpp 中。
对应的代码层次:
App--->framework-java--->jni--->framework-c++(Camera)--->binder--->
framework-c++(CameraService)-->framework-c++(CameraService::Client)--->
framework-c++(CameraClient) --->(CameraHardwareInterface) ---> HAL
2017-12-11
高通camera预览拍照流程1
当指定了Camera的预览类,并开始预览之后,就可以通过takePicture()方法进行拍照
了。它将以异步的方式从Camera中获取图像,具有多个回调类作为参数,并且都可以为
null,下面分别介绍这些参数的意义:
• shutter:在按下快门的时候回调,这里可以播放一段声音。
• raw:从Camera获取到未经处理的图像。
• postview:从Camera获取一个快速预览的图片,不是所有设备都支持。
• jpeg:从Camera获取到一个经过压缩的jpeg图片。
虽然raw、postview、jpeg都是Camera.PictureCallback回调,但是一般我们只需要
获取jpeg,其他传null即可,Camera.PictureCallback里需要实现一个方法
onPictureTaken(byte[] data,Camera camera),data及为图像数据。值得注意的是,一般
taskPicture()方法拍照完成之后,SurfaceView都会停留在拍照的瞬间,需要重新调用
startPreview()才会继续预览。
如果直接使用taskPicture()进行拍照的话,Camera是不会进行自动对焦的,这里需
要使用Camera.autoFocus()方法进行对焦,它传递一个Camera.AutoFocusCallback参
数,用于自动对焦完成后回调,一般会在它对焦完成在进行taskPicture()拍照。
2017-12-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人