2023第十二届“认证杯”D题:CMOS黄昏系数|数学中国数学建模国际赛(小美赛)| 建模秘籍&文章代码思路大全
数字商品 教育 / 知识

2023第十二届“认证杯”D题:CMOS黄昏系数|数学中国数学建模国际赛(小美赛)| 建模秘籍&文章代码思路大全

数学建模小秘籍 · 2 · 0

商品介绍
铛铛!小秘籍来咯! 
小秘籍希望大家都能轻松建模呀,认证杯也会持续给大家放送思路滴~
抓紧小秘籍,我们出发吧~
 
来看看认证杯(D题)!

问题重述:
 
在光学设备领域,当我们使用普通光学望远镜在弱光条件下观察远处目标时,光圈越大,望远镜中进入的光线就越多。望远镜的放大倍数越大,视野就越窄,图像就越暗。然而,放大倍数越高,目标就越大,观察到的细节就越多。为了在弱光条件下比较望远镜的适用性,蔡司公司采用了一种经验公式,称为黄昏系数,定义如下:
 
$TF = \sqrt{m \times d}$
 
其中 m 为放大倍数, d 为物镜直径(以毫米为单位)。
 
黄昏系数是一个用于比较在低光条件下使用的双筒望远镜或望远镜的数字。黄昏系数越大,表示在弱光条件下能够观察到更多的细节。然而,黄昏系数有时会误导,例如两个望远镜,一个是8x56,另一个是56x8(理论上可行但实际上不存在的型号),它们的黄昏系数都是21.2。虽然8x56型号在黄昏时表现良好,但56x8型号即使在白天也完全无法使用。
 
现在,我们希望有一个更有用的指标,用于表达望远镜在低光条件下的性能,同时只使用基本参数。这将为望远镜的选择提供一个性能参考。我们不考虑更详细的反映图像质量的性能参数,如对比度、透过率、颜色还原等。
 
**任务:**
 
1. 请考虑在弱光条件下人眼的视觉特性,建立一个合理的模型,提出适用于人眼直接观察的黄昏系数算法。
 
2. 如果视觉接收器不是人眼而是CMOS视频录制设备,请考虑CMOS在弱光条件下的感应特性,建立一个合理的数学模型,提出适用于CMOS视频录制设备的黄昏系数算法。
 
 
## 任务1
### **问题一:新思路模型建立**
 
#### **考虑人眼在弱光条件下的视觉特性**
 
 **1.视觉特性分析:**
  - **视野大小影响:** 在低光条件下,拥有较大视野的望远镜能够收集更多的光线,因此在一定程度上能够提高在弱光环境下的表现。
  - **适应性亮度调整:** 人眼在弱光下具有适应性,可以通过瞳孔的扩大来接收更多的光。这个特性应当在新模型中得到考虑。
 
 
 
 **2. 建立新的黄昏系数算法:**
 
##### **考虑视野大小:**
 
在考虑视野大小时,我们引入了一个视野因子$f$,它是一个影响视野对黄昏系数贡献的参数。视野越大,$f$ 的值越大,对黄昏系数的影响就越显著。
 
我们可以选择一个合适的函数形式,例如 $TF_{new} = k \times \sqrt{m \times d \times f}$,其中 $k$是一个常数。这个函数结合了传统的望远镜黄昏系数的根号形式,同时考虑了视野大小对性能的影响。
 
 **适应性亮度调整:**
 
为了考虑人眼在低光条件下的适应性,我们引入一个亮度调整因子,这个因子反映了瞳孔扩大的程度。在弱光条件下,人眼的瞳孔会扩大以接收更多光线,从而提高对弱光环境的适应性。
 
因此,新的黄昏系数算法可以通过乘以适应性亮度调整因子来模拟这一效应,即 $TF_{new} = TF_{new} \times \frac{1}{\text{瞳孔因子}}$。
 
**3. 可行性和测量方法:**
 
##### **视野大小的测量:**
 
测量望远镜的视野大小可以通过以下步骤实现:
 
- 使用一个标准测量工具,如角度测量仪,测量望远镜的视场角。
- 将视场角转换为视野大小的估算,使用望远镜的设计参数,例如焦距等。
 
这个过程可以在实际使用中通过标准的光学仪器进行,确保了视野大小的准确度。
 
##### **瞳孔因子的测量:**
 
测量瞳孔因子可以通过以下步骤实现:
 
- 在弱光条件下,使用瞳孔测量仪等设备测量人眼瞳孔的直径。
- 在不同光照条件下进行多次测量,以获取瞳孔因子在不同亮度下的变化。
 
这个过程可以使用专业的眼科设备进行,以确保测量的准确性。
 
4. **实例和验证:**
  - **选择合适的实际望远镜数据进行验证:** 选择几款实际望远镜,使用新的黄昏系数算法和传统算法进行对比,观察它们在弱光条件下的表现,验证新模型的有效性。
  - **绘制图表和对比分析:** 使用实际数据绘制图表,展示新模型相对于传统模型的优越性。比较在不同亮度下的黄昏系数。
 
```python
import numpy as np
import matplotlib.pyplot as plt
 
def new_twilight_coefficient(magnification, lens_diameter, field_of_view, adaptability_factor):
   """
   计算新的黄昏系数
 
   Parameters:
       magnification (float): 望远镜的放大倍数
       lens_diameter (float): 物镜直径(毫米)
       field_of_view (float): 视野大小
       adaptability_factor (float): 适应性亮度调整因子
 
   Returns:
       float: 新的黄昏系数
   """
   tf_new = np.sqrt(magnification * lens_diameter * field_of_view) * adaptability_factor
   return tf_new
 
def simulate_measurements():
   """
   模拟实验数据
 
   Returns:
       Tuple[np.ndarray, np.ndarray, np.ndarray]: 放大倍数、物镜直径、新的黄昏系数结果
   """
   magnifications = np.linspace(6, 12, 20)
   lens_diameters = np.linspace(40, 60, 20)
   
   results = np.zeros((len(magnifications), len(lens_diameters)))
 
   for i, m in enumerate(magnifications):
       for j, d in enumerate(lens_diameters):#见完整版
```
 
## 任务2
### **问题二:CMOS视频录制设备模型建立**
 
#### **1. CMOS感应特性分析:**
 
1. **灵敏度:** CMOS传感器在低光条件下的灵敏度通常较低,需要考虑灵敏度对图像质量的影响。
 
2. **噪声水平:** 弱光条件下,噪声在图像中可能更为明显,需要考虑噪声对图像清晰度的影响。
 
3. **动态范围:** CMOS传感器的动态范围影响其在低光条件下捕捉细节的能力,需要综合考虑。
 
#### **2. CMOS黄昏系数算法建模:**
 
1. **灵敏度补偿:** 引入一个灵敏度补偿因子,以反映CMOS在弱光条件下的性能,即 \(TF_{CMOS} = \text{灵敏度} \times TF\)。
 
2. **噪声抑制:** 引入噪声抑制因子,以减少噪声对图像的影响,即 \(TF_{CMOS} = \frac{TF}{\text{噪声因子}}\)。
 
3. **动态范围适应:** 引入动态范围适应因子,考虑CMOS动态范围对图像质量的调整,即 \(TF_{CMOS} = \text{动态范围因子} \times TF\)。
 
4. **综合考虑:** 将上述因子结合,得到CMOS的新黄昏系数算法,即 \(TF_{CMOS} = \text{灵敏度} \times \frac{TF}{\text{噪声因子}} \times \text{动态范围因子}\)。
 
#### **3. 参数定义和测量方法:**
 
1. **灵敏度测量:** 使用标准测试图像,在不同光照条件下测量CMOS的灵敏度。
 
2. **噪声水平测量:** 在弱光条件下捕捉图像,并通过图像处理方法测量噪声水平。
 
3. **动态范围测量:** 使用具有高对比度的场景,测量CMOS在不同光照条件下的动态范围。
 
#### **4. 示例验证和图表展示:**
 
1. **选择CMOS摄像头:** 选择一个实际的CMOS摄像头,获取其性能参数。
 
2. **模拟实验数据:** 模拟不同光照条件下的黄昏系数,使用新的CMOS算法和传统算法进行比较。
 
3. **绘制图表:** 使用图表展示不同参数对CMOS黄昏系数的影响,以及新算法相对于传统算法的优越性。
 
 
 
```python
import numpy as np
import matplotlib.pyplot as plt
 
def cmos_twilight_coefficient(magnification, lens_diameter, field_of_view, adaptability_factor,
                              sensitivity_factor, noise_factor, dynamic_range_factor):
   # 新的黄昏系数算法考虑CMOS感应特性
   tf_new_cmos = sensitivity_factor * np.sqrt(magnification * lens_diameter * field_of_view) / noise_factor
   tf_new_cmos *= dynamic_range_factor
   return tf_new_cmos
 
def simulate_cmos_measurements():
   # 模拟实验数据
   magnifications = np.linspace(6, 12, 20)
   lens_diameters = np.linspace(40, 60, 20)
   
   results_cmos = np.zeros((len(magnifications), len(lens_diameters)))
 
   for i, m in enumerate(magnifications):
       for j, d in enumerate(lens_diameters):
           # 使用一些固定的视野、适应性因子和感应特性因子进行模拟
           tf_new_cmos = cmos_twilight_coefficient(m, d, field_of_view=5.0, adaptability_factor=1.2,
                                                    sensitivity_factor=0.8, noise_factor=1.1, dynamic_range_factor=0.9)
           results_cmos[i, j] = tf_new_cmos
 
   return magnifications, lens_diameters, results_cmos
 
def plot_cmos_results(magnifications, lens_diameters, results_cmos):
```
代码模拟了一系列CMOS摄像头参数的实验数据,并使用新的CMOS黄昏系数算法计算了相应的黄昏系数。最后,通过轮廓图可视化了不同参数下的新CMOS黄昏系数。

同店推荐

包含文件 · 4 · 183.5 KB

  • 01_D题秘籍思路+代码.docx 20.8 KB
  • 02_问题二.py 2.0 KB
  • 03_问题一.py 2.2 KB
  • 04_D题秘籍思路+代码.pdf 158.6 KB
支付金额 ¥18.32